Вопрос-ответ

How can I convert my Java program to an .exe file?

Как я могу преобразовать мою Java-программу в файл .exe?

Если у меня есть исходный файл Java (*.java) или файл класса (*.class), как я могу преобразовать его в файл .exe?

Мне также нужен установщик для моей программы.

Переведено автоматически
Ответ 1

javapackager


Инструмент Java Packager компилирует, упаковывает и подготавливает приложения Java и JavaFX к распространению. Команда javapackager - это версия командной строки.


– Документация Oracle


javapackager Утилита поставляется с JDK. Помимо прочего, она может генерировать файлы .exe с флагом -native exe.

WinRun4J


WinRun4J - это Java-лаунчер для Windows. Он является альтернативой javaw.exe и предоставляет следующие преимущества:



  • Использует INI-файл для указания пути к классу, основного класса, аргументов виртуальной машины, программных аргументов.

  • Пользовательское имя исполняемого файла, которое отображается в диспетчере задач.

  • Дополнительные аргументы JVM для более гибкого использования памяти.

  • Встроенный заменитель значков для пользовательских значков.

  • [далее следуют дополнительные пункты]


– Веб-страница WinRun4J


WinRun4J - это утилита с открытым исходным кодом. Она обладает множеством функций.

packr


Упаковывает ваш JAR, ресурсы и JVM для распространения в Windows, Linux и Mac OS X, добавляя собственный исполняемый файл, чтобы он выглядел как собственное приложение. Packr больше всего подходит для приложений с графическим интерфейсом.


– packr README


packr - это еще один инструмент с открытым исходным кодом.

JSmooth


JSmooth - это оболочка исполняемого файла Java. Он создает собственные средства запуска Windows (standard .exe) для ваших java-приложений. Это делает развертывание Java намного более плавным и удобным для пользователя, поскольку оно способно само находить любую установленную виртуальную машину Java.


– Веб-сайт JSmooth


JSmooth имеет открытый исходный код и имеет функции, но он очень старый. Последний выпуск был в 2007 году.

JexePack


JexePack - это инструмент командной строки (отлично подходит для автоматического написания сценариев), который позволяет вам упаковать ваше Java-приложение (файлы классов), необязательно вместе с его ресурсами (такими как GIF / JPG / TXT / etc), в единый сжатый 32-разрядный Windows EXE, который запускается с использованием Sun Java Runtime Environment. Поддерживаются как консольные, так и оконные приложения.


– Веб-сайт JexePack


JexePack является пробным программным обеспечением. Для производственного использования требуется оплата, и в файлах exe, созданных с помощью этого инструмента, будут отображаться "напоминания" без оплаты. Кроме того, последний релиз был в 2013 году.

InstallAnywhere


InstallAnywhere упрощает разработчикам создание профессионального установочного программного обеспечения для любой платформы. С InstallAnywhere вы быстро адаптируетесь к изменениям в отрасли, быстрее выйдете на рынок и обеспечите привлекательный клиентский опыт. И узнайте об уязвимости компонентов OSS вашего проекта перед отправкой.


– Веб-сайт InstallAnywhere


InstallAnywhere - это коммерческий / корпоративный пакет, который создает установщики для программ на основе Java. Вероятно, он способен создавать файлы .exe.

Исполняемые JAR-файлы

В качестве альтернативы файлам .exe вы можете создать файл JAR, который автоматически запускается при двойном щелчке, добавив точку входа в манифест JAR.


Для получения дополнительной информации

Отличным источником информации по этой теме является эта статья "Конвертировать Java в EXE – почему, когда, когда нет и как" Дмитрия Лескова

Смотрите также сопутствующую страницу "Лучшие инструменты преобразования JAR в EXE, бесплатные и коммерческие"

Ответ 2

Launch4j


Launch4j - это кроссплатформенный инструмент для упаковки Java-приложений, распространяемых в виде jars, в облегченные собственные исполняемые файлы Windows. Исполняемый файл может быть настроен на поиск определенной версии JRE или использовать комплектную версию, и можно установить параметры времени выполнения, такие как начальный / максимальный размер кучи. Оболочка также обеспечивает лучший пользовательский опыт благодаря значку приложения, встроенной заставке до JRE, пользовательскому имени процесса и странице загрузки Java на случай, если не удается найти подходящий JRE.


– Веб-сайт Launch4j


Ответ 3

ОБНОВЛЕНИЕ: GCJ мертв. Он был официально удален из проекта GCC в 2016 году. Даже до этого от нее практически отказались на семь лет, и в любом случае она никогда не была достаточно полной, чтобы служить жизнеспособной альтернативной реализацией Java.


Найдите другой компилятор Java AOT.


GCJ: компилятор GNU для Java может компилировать исходный код Java в машинный код, включая исполняемые файлы Windows.

Хотя не все в Java поддерживается в GCJ, особенно компоненты GUI (см. Какие Java API поддерживаются? Насколько полная поддержка? вопрос из FAQ). Я не часто использовал GCJ, но, судя по ограниченному тестированию, которое я провел с консольными приложениями, все в порядке.

Одним из недостатков использования GCJ для создания автономного исполняемого файла является то, что размер результирующего EXE-файла может быть довольно большим. Однажды я скомпилировал обычное консольное приложение в GCJ, и в результате получился исполняемый файл размером около 1 МБ. (Могут быть способы обойти это, о которых я не знаю. Другим вариантом могут быть программы сжатия исполняемых файлов.)

С точки зрения установщиков с открытым исходным кодом, Nullsoft Scriptable Install System - это программа установки с использованием сценариев. Если вам интересно, есть примеры, предоставленные пользователями, о том, как определить наличие JRE и установить его автоматически, если требуемый JRE не установлен. (Просто чтобы вы знали, я раньше не использовал NSI.)

Для получения дополнительной информации об использовании NSI для установки Java-приложений, пожалуйста, ознакомьтесь с моим ответом на вопрос "Какой наилучший способ распространения Java-приложений?"

Ответ 4

Вы могли бы создать пакетный файл со следующим кодом:

start javaw -jar JarFile.jar

и конвертируйте файл .bat в файл .exe с помощью любого конвертера .bat в .exe.

java