Как я могу преобразовать мою 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.