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

StackOverflow https://stackoverflow.com/questions/147181

  •  02-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

javapackager

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

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

А javapackager Утилиты поставляются с JDK.Он может генерировать файлы .exe с помощью -native exe флаг и многое другое.

WinRun4J

WinRun4j — это программа запуска Java для Windows.Это альтернатива javaw.exe, предоставляющая следующие преимущества:

  • Использует INI-файл для указания пути к классам, основного класса, аргументов виртуальной машины, аргументов программы.
  • Пользовательское имя исполняемого файла, которое отображается в диспетчере задач.
  • Дополнительные аргументы JVM для более гибкого использования памяти.
  • Встроенный заменитель значков для пользовательских значков.
  • [дальше следуют дополнительные пункты]

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

WinRun4J — утилита с открытым исходным кодом.В нем есть много функции.

упаковщик

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

— README пакета

Packr — еще один инструмент с открытым исходным кодом.

JSmooth

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

- сайт JSmooth

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

JexePack

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

- сайт JexePack

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

Установить где угодно

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

- Веб-сайт InstallAnywhere

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

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

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


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

Отличным источником информации по этой теме является статья Excelsior "Преобразование Java в EXE – почему, когда, когда нет и как".

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

Другие советы

Запуск4j

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

- сайт Launch4j

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

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

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

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

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

Что касается установщиков с открытым исходным кодом, Система установки Nullsoft со сценариями это скриптовый установщик.Если вам интересно, есть примеры, предоставленные пользователями о том, как обнаружить наличие JRE и автоматически установить ее, если необходимая JRE не установлена.(Просто чтобы вы знали: я раньше не использовал NSIS.)

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

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

start javaw -jar JarFile.jar

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

Мы используем Установить4J для создания установщиков для сред Windows или Unix.

Его легко настраивать вплоть до того, что вы захотите написать сценарии для особых действий, которые невозможно выполнить с помощью стандартных диалогов.Но даже несмотря на то, что мы настраиваем с его помощью службы Windows, мы используем только стандартные компоненты.

  • установщик + лаунчер
  • винда или юникс
  • возможность написания сценариев на Java
  • задача муравья
  • множество настраиваемых стандартных панелей и действий
  • опционально включает или загружает JRE
  • также может запускать службы Windows
  • несколько языков

Я думаю, что Launch4J от той же компании (только лаунчер, без установщика).

ПС:к сожалению, мне не платят за эту поддержку.Мне просто нравится этот инструмент.

Последний Веб-старт Java был улучшен, чтобы обеспечить хорошую работу в автономном режиме, а также возможность «локальной установки».Это стоит изучить.

РЕДАКТИРОВАТЬ 2018:Java Web Start больше не входит в состав новейших JDK.Вместо этого Oracle продвигает модель «развертывания приложения локально с помощью вложенной JRE».

Если вам нужно преобразовать все приложение в собственный код, т.е.EXE плюс библиотеки DLL, есть ЭксельсиорДжет.Я обнаружил, что это работает хорошо, и предоставил альтернативу комплекту JRE.

ИМХО JSmooth кажется, делает довольно хорошую работу.

Я бы сказал, что Launch4j - лучший инструмент для преобразования исходного кода Java (.java) в файл.Хотя размер приложения увеличивается, это гарантирует, что приложение будет работать идеально, даже если у пользователя не установлен jre.Это также гарантирует, что вы сможете предоставить конкретный jre, необходимый для вашего приложения, без необходимости установки пользователем его отдельно.Но, к сожалению, Java теряет свое значение.Поддержка нескольких платформ полностью игнорируется, а финальная версия приложения поддерживается только для Windows.Но это не имеет большого значения, если вы обслуживаете только пользователей Windows.

Вы можете использовать Джанель.Последний работает как средство запуска приложений или средство запуска служб (доступно начиная с версии 4.x).

Альтернативно вы можете использовать какой-нибудь переводчик Java-to-C (например, JCGO) и скомпилируйте сгенерированные файлы C в собственный двоичный файл (.exe) для целевой платформы.

Меня можно простить за то, что я против преобразования Java-программы в приложение .exe, и у меня есть причины.Основной из них заключается в том, что Java-программу можно скомпилировать в jar-файл из множества IDE.Когда программа имеет формат .jar, она может работать на нескольких платформах, в отличие от .exe, который будет работать только в очень ограниченной среде.Я придерживаюсь мнения, что программы Java не следует конвертировать в Exe, если в этом нет крайней необходимости.Всегда можно написать файлы .bat, которые запускают программу Java, пока это файл jar.

если действительно необходимо преобразовать его в exe, конвертер Jar2Exe сделает это автоматически, и можно также прикрепить библиотеки, скомпилированные вместе с основным приложением.

Вы можете конвертировать jar в exe, используя jar2exe.Однако вам необходимо приобрести программное обеспечение.Если вам нужно программное обеспечение с открытым исходным кодом, я бы предложил JSmooth.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top