В любом IDE (NetBeans, IDEA, Eclipse) делаешь jar файл, желательно "Runnable Jar".
Качаешь крутую программу Launch4j, указываешь путь к jar, путь к иконке, куда сохранить exe, и на одной из вкладок минимальную версию java. Нажимаешь собрать и вуаля.
Одну и ту же задачу дали профи и школьнику. Каждый написал решение (свой код). Решение школьника состоит из 1000 строк кода, программа работает 1 час и дает правильный результат.
Решение профи состоит из 250 строк кода, программа работает 1 минуту и тоже дает правильный результат. Какой из кодов оптимальный (оптимизированный), а какой нет?