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

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

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

простой прием для апплетов: напишите код C с main и вызовом функции "system", такой как system ("appletviewer java_src_file");

Madhusoodan P 11.10.2016 07:09

Будет ли .exe работать в системе Windows без JRE?

Arpit Agarwal 03.01.2017 02:52

Для полноты (сам не пробовал, потому что нам нужна оболочка exe, а не установщик): пакеты установщика также могут быть созданы с помощью javapackager (см. docs.oracle.com/javase/8/docs/technotes/guides/deploy/…). Чтобы создать установщик EXE или MSI, дополнительно необходимо загрузить и установить Inno Setup или WiX.

anre 17.03.2017 18:32

Может быть, NSIS тоже поможет; nsis.sourceforge.net/Java_Launcher

baris.aydinoz 06.05.2018 10:40

По состоянию на 2021 год GraalVM представляет собой интересный способ компиляции Java в собственный код и официально поддерживается Oracle.

Thorbjørn Ravn Andersen 18.02.2021 03:06
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
518
5
445 910
14
Перейти к ответу Данный вопрос помечен как решенный

Ответы 14

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

UPDATE: GCJ is dead. It was officially removed from the GCC project in 2016. Even before that, it was practically abandoned for seven years, and in any case it was never sufficiently complete to serve as a viable alternative Java implementation.

Go find another Java AOT compiler.

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

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

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

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

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

Как я вижу, проект фактически мертв. На главной странице новостей нет

Vladislav Rastrusny 31.10.2014 20:42

Разработка GNU Java в значительной степени перешла на OpenJDK, поскольку источники, не относящиеся к Oracle, не могли получить доступ к TCK для проверки.

Thorbjørn Ravn Andersen 12.10.2015 14:17
Ответ принят как подходящий

javapackager

The Java Packager tool compiles, packages, and prepares Java and JavaFX applications for distribution. The javapackager command is the command-line version.

– Oracle's documentation

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

WinRun4J

WinRun4j is a java launcher for windows. It is an alternative to javaw.exe and provides the following benefits:

  • Uses an INI file for specifying classpath, main class, vm args, program args.
  • Custom executable name that appears in task manager.
  • Additional JVM args for more flexible memory use.
  • Built-in icon replacer for custom icon.
  • [more bullet points follow]

– WinRun4J's webpage

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

упаковщик

Packages your JAR, assets and a JVM for distribution on Windows, Linux and Mac OS X, adding a native executable file to make it appear like a native app. Packr is most suitable for GUI applications.

– packr README

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

JSmooth

JSmooth is a Java Executable Wrapper. It creates native Windows launchers (standard .exe) for your java applications. It makes java deployment much smoother and user-friendly, as it is able to find any installed Java VM by itself.

– JSmooth's website

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

JexePack

JexePack is a command line tool (great for automated scripting) that allows you to package your Java application (class files), optionally along with its resources (like GIF/JPG/TXT/etc), into a single compressed 32-bit Windows EXE, which runs using Sun's Java Runtime Environment. Both console and windowed applications are supported.

– JexePack's website

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

InstallAnywhere

InstallAnywhere makes it easy for developers to create professional installation software for any platform. With InstallAnywhere, you’ll adapt to industry changes quickly, get to market faster and deliver an engaging customer experience. And know the vulnerability of your project’s OSS components before you ship.

– InstallAnywhere's website

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

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

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


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

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

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

Лучше использовать eclipse и Jsmooth. Выполните следующие шаги regilanj.wordpress.com/2017/11/19/…

Maria Irudaya Regilan J 19.11.2017 16:43

Сработает ли что-нибудь из этого в моей ситуации? stackoverflow.com/questions/56674075/…

gunslingor 20.06.2019 16:46

Попробуйте это: javaexe.free.fr/html/en/JavaExe.html

CamelTM 26.02.2020 12:15

Launch4j

Launch4j is a cross-platform tool for wrapping Java applications distributed as jars in lightweight Windows native executables. The executable can be configured to search for a certain JRE version or use a bundled one, and it's possible to set runtime options, like the initial/max heap size. The wrapper also provides better user experience through an application icon, a native pre-JRE splash screen, a custom process name, and a Java download page in case the appropriate JRE cannot be found.

– Launch4j's website

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

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

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

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

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

Последняя версия Запуск Java Web была улучшена, чтобы обеспечить хорошую автономную работу, а также разрешить "локальную установку". На это стоит посмотреть.

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

Судя по всему, безопасность JWS была усилена настолько, что для запуска требуется гораздо больше усилий, чем раньше. Тем не менее, это может быть полезно для установщиков.

Thorbjørn Ravn Andersen 16.01.2017 05:02

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

Обновлено: это было опубликовано в 2010 году - продукт больше не доступен.

Хотя действительно дорого.

Mordechai 25.06.2015 15:03

Действительно снято с производства.

eattrig 06.10.2020 19:56

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

Я очень скептически отношусь к эффективности этого метода. Я должен был увидеть это, чтобы поверить в это (подумайте о том факте, что большая часть кода Java - это вызовы API к JRE, а всего этого нет на C, не говоря уже о различиях в том, как работает язык).

Camilo Martin 18.12.2012 13:42

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

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

Дело в том, что сила java - это портативность, но многим людям просто нужен простой windows exe. Лично мне нравится концепция java ... но я хотел бы распространять что-то, что могут запускать мои пользователи, без необходимости загружать JRE.

Balmipour 27.12.2019 16:52

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

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

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

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

start javaw -jar JarFile.jar

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

Хорошая оболочка либо предоставляет JRE, либо устанавливает ее, если необходимо, и обрабатывает ситуации с ошибками.

Thorbjørn Ravn Andersen 16.01.2017 05:01

Проекты Java экспортируются как исполняемые файлы Jar. Когда вы хотите создать файл .exe для java-проекта, вы можете «преобразовать» JAR в EXE (отмечу, что я поставил между кавычками convert, потому что это не совсем так).

Из intelij вы сможете сгенерировать только банку

Попробуйте выполнить следующий пример: https://www.genuinecoder.com/convert-java-jar-to-exe/

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