Существует два, по меньшей мере, двух подхода, в результате которых файл .exe может щелкнуть.
Проще всего обертывание Требуемая среда java и exe только выступает в качестве запуска для стандартной виртуальной машины. JRE может быть включена в завернутое приложение или, альтернативно, может использоваться система, установленная JRE. start4j (http://launch4j.sourceforge.net/) - пример, который работает таким образом.
Также возможно выполнить работу JIT (создание собственного кода, который может выполнять ЦП) независимо от развертывания. Существует (был?) Gcj (https://gcc.gnu.org/java/) и существует хотя бы один коммерческий продукт (Excelsior JET), который предоставляет эту возможность.
Что касается вашего вопроса «как»: упаковка не изменяет код, он просто предоставляет пусковую установку, которая настраивает необходимую среду для запуска java-кода, автоматизируя процесс до того момента, когда конечный пользователь не нуждается в чтобы знать, что они запускают Java-код. Это может быть объединено с любым пакетом установщика, чтобы обеспечить безопасный «щелчок для установки» и «нажмите, чтобы запустить» пользовательский интерфейс (например, InnoSetup).
Компиляция в собственный код в основном аналогична любому другому компилятору, переводит язык ввода в собственный код. Из-за многих функций javas, которые выполняются во время выполнения (например, загрузка классов, отражение), для этого требуется довольно много усилий.
Пожалуйста, не могли бы вы объяснить мне, КАК? – The1Dev
читайте здесь http://launch4j.sourceforge.net/ – Acewin
Ваша банка будет упакована внутри исполняемого файла. Подумайте об этом как о архиве. Наряду с банкой есть пусковая установка, которая вызывает системные вызовы для запуска виртуальной машины Java. – Shiro