Как преобразовать мою программу Java в файл .exe? - программирование
Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

javapackager

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

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

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

WinRun4J

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

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

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

WinRun4J - это утилита с открытым исходным кодом. У этого есть много особенностей.

packr

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

- упаковщик README

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

JSmooth

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

- сайт JSmooth

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

JexePack

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

- сайт JexePack

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

InstallAnywhere

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

- Установить любой сайт

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

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

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


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

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

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

Ответ 2

Launch4j

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

- сайт Launch4j

Ответ 3

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

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

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

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

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

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

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

Ответ 4

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

start javaw -jar JarFile.jar

и конвертировать .bat в .exe, используя любой конвертер .bat в .exe.

Ответ 5

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

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

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

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

PS: К сожалению, мне не платят за это одобрение. Мне просто нравится этот инструмент.

Ответ 6

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

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

Ответ 7

IMHO JSmooth, кажется, неплохо справляется.

Ответ 8

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

Ответ 9

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

Ответ 10

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

Ответ 11

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

Ответ 12

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

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

Ответ 13

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