2016-06-23 2 views
0

Вы знаете jar к программам exe, которые компилируют проект java в .exe. Я хочу знать, как это программное обеспечение действительно работает.Как работает работа .jar .exe?

Каков метод, которым они следуют для выполнения этой операции?

Изменили ли они байт-код файла jar в exe-файл?

ответ

1

Существует два, по меньшей мере, двух подхода, в результате которых файл .exe может щелкнуть.

Проще всего обертывание Требуемая среда java и exe только выступает в качестве запуска для стандартной виртуальной машины. JRE может быть включена в завернутое приложение или, альтернативно, может использоваться система, установленная JRE. start4j (http://launch4j.sourceforge.net/) - пример, который работает таким образом.

Также возможно выполнить работу JIT (создание собственного кода, который может выполнять ЦП) независимо от развертывания. Существует (был?) Gcj (https://gcc.gnu.org/java/) и существует хотя бы один коммерческий продукт (Excelsior JET), который предоставляет эту возможность.

Что касается вашего вопроса «как»: упаковка не изменяет код, он просто предоставляет пусковую установку, которая настраивает необходимую среду для запуска java-кода, автоматизируя процесс до того момента, когда конечный пользователь не нуждается в чтобы знать, что они запускают Java-код. Это может быть объединено с любым пакетом установщика, чтобы обеспечить безопасный «щелчок для установки» и «нажмите, чтобы запустить» пользовательский интерфейс (например, InnoSetup).

Компиляция в собственный код в основном аналогична любому другому компилятору, переводит язык ввода в собственный код. Из-за многих функций javas, которые выполняются во время выполнения (например, загрузка классов, отражение), для этого требуется довольно много усилий.

1

В основном исполняемый файл просто запускает вашу банку. Это все еще байт-код и все еще работает в JVM.

+0

Пожалуйста, не могли бы вы объяснить мне, КАК? – The1Dev

+0

читайте здесь http://launch4j.sourceforge.net/ – Acewin

+0

Ваша банка будет упакована внутри исполняемого файла. Подумайте об этом как о архиве. Наряду с банкой есть пусковая установка, которая вызывает системные вызовы для запуска виртуальной машины Java. – Shiro

0

Эти файлы msi и exe больше похожи на zip-файл, который извлекает файл jar и его зависимости и помещает их в нужное место. Затем они добавляют ярлыки и ссылки на файлы, необходимые для запуска программы.

Вы можете прочитать об этом здесь. http://docs.oracle.com/javafx/2/deployment/self-contained-packaging.htm

и больше здесь. http://wixtoolset.org/