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

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

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

13 ответов


варианты:

Исполняемый Файл Jar

см. также распространение вашего приложения в качестве исполняемого файла JAR и Oracle docs о том, как создать файл jar, который может быть выполнен с двойным щелчком мыши на Windows.

JSmooth

(EDIT: последний выпуск был в 2007 году)

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

JexePack

(EDIT: Shareware: последнее обновление в версии 08/29/2013-8.4)

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

LaunchAnywhere

(EDIT: Коммерческая с бесплатной пробной версией, последняя версия с 2012 года)

исполняемый файл LAX-это исполняемый файл, который используется для запуска приложения Java на любой платформе, совместимой с LaunchAnywhere. В настоящее время InstallAnywhere создает LaunchAnywheres в Windows 95/98/NT/2000 / Me, Solaris, Linux и Mac OS X. LaunchAnywhere позволяет конечным пользователям дважды щелкнуть значок (Windows или Mac OS X) или ввести одну команду (UNIX) для запуска приложения Java.

см. Также ссылку преобразование Java в EXE: почему, когда, когда и как


Launch4j

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


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

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

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

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

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


вы можете попробовать многие Java-оболочки, такие как JSmooth, JWrapper и другие утилиты, но вы также можете сделать .bat со следующим кодом:
start javaw -jar JarFile.jar
и преобразуйте bat в exe, используя любой .битой .exe конвертер.


мы используем Install4J для создания инсталляторов для сред windows или unix.

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

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

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

ЗЫ: к сожалению мне не платят за это одобрение. Мне просто нравится этот инструмент.


последние Java Web Start было увеличено для того чтобы позволить хорошей автономной деятельности так же, как позволять "местной установке". В этом стоит разобраться.

EDIT 2018: Java Web Start больше не поставляется в комплекте с новейшими JDK. Oracle подталкивает к" развертыванию вашего приложения локально с закрытой моделью JRE".


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


Если вам нужно преобразовать все ваше приложение в собственный код, то есть Exe plus DLL, есть ExcelsiorJET. Я нашел, что он работает хорошо и предоставил альтернативу связыванию JRE.


Я бы сказал, что launch4j-лучший инструмент для преобразования исходного кода java(.java).файл EXE Вы даже можете связать jre с ним для распространения, и exe даже может быть iconified. Хотя размер приложения увеличивается, он гарантирует, что приложение будет работать отлично, даже если у пользователя нет установленной jre. Он также гарантирует, что вы сможете предоставить конкретную jre, необходимую для вашего приложения, без необходимости устанавливать его отдельно. Но, к сожалению, java теряет свое значение. Его поддержка нескольких платформ полностью игнорируется, и окончательное приложение поддерживается только для windows. Но это не имеет большого значения, если вы обслуживаете только пользователей windows.


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


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


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

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


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