Как сделать java приложение exe файлом
Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека.
Закрыто 6 лет назад .
Если у меня есть исходный файл Java (* .java) или файл класса (* .class), как я могу преобразовать его в файл .exe?
Мне также нужен установщик для моей программы.
простой взлом для апплетов: написать код на C с main и вызовом функции system как system («appletviewer java_src_file»);javapackager
Инструмент Java Packager компилирует, упаковывает и подготавливает приложения Java и JavaFX для распространения. Команда javapackager является версией командной строки.
- документация Oracle
В javapackager утилите поставляется с JDK. Он может генерировать .exe файлы с -native exe флагом, среди прочего.
WinRun4J
- Использует INI-файл для указания classpath, main class, vm args, args программы.
- Пользовательское имя исполняемого файла, которое появляется в диспетчере задач.
- Дополнительные аргументы JVM для более гибкого использования памяти.
- Встроенный заменитель иконок для пользовательских значков.
- [больше пунктов следа пули следуют]
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 , который работает с использованием среды выполнения Java Sun. Поддерживаются как консольные, так и оконные приложения.
- сайт JexePack
JexePack - пробная версия. Для производственного использования требуется оплата, и exe-файлы, созданные с помощью этого инструмента, будут отображать «напоминания» без оплаты. Также последний релиз был в 2013 году.
InstallAnywhere
InstallAnywhere позволяет разработчикам создавать профессиональные программы установки для любой платформы. С InstallAnywhere вы быстро адаптируетесь к изменениям в отрасли, быстрее выходите на рынок и привлекаете клиентов. И узнайте уязвимость компонентов OSS вашего проекта перед отправкой.
- Установить сайт Anywhere
InstallAnywhere - это коммерческий / корпоративный пакет, который генерирует установщики для программ на основе Java. Вероятно, он способен создавать файлы .exe.
Исполняемые файлы JAR
В качестве альтернативы .exe-файлам вы можете создать файл JAR, который автоматически запускается при двойном щелчке, добавляя точку входа в манифест JAR .
Отличным источником информации по этой теме является статья Excelsior « Преобразование Java в EXE - почему, когда, когда нет и как ».
Launch4j - это кроссплатформенный инструмент для упаковки Java-приложений, распространяемых в виде jars, в легкие собственные исполняемые файлы Windows. Исполняемый файл может быть настроен для поиска определенной версии JRE или использования связанной версии, и можно установить параметры времени выполнения, такие как начальный / максимальный размер кучи. Оболочка также обеспечивает лучшее взаимодействие с пользователем благодаря значку приложения, собственному экрану заставки перед JRE, пользовательскому имени процесса и странице загрузки Java в случае, если не удается найти соответствующий JRE.
- Сайт Launch4j
ОБНОВЛЕНИЕ: 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? "
Пользователям Windows привычнее использовать исполняемое приложение в виде exe-файла, нежели архивного jar-файла. Разработчики настольных java-приложений могут плагином launch4j не только обернуть исполняемый архивный jar-файл в оболочку exe-файла, но и включить в него иконку, автора, версию. Также данный плагин позволяет определить минимальную версию используемой JRE. В данной статье рассмотрим использование maven-плагина launch4j для получения exe-файла.
Описание java-примера
В качестве java-примера используем pluggable решение, включающее несколько jar-файлов. На следующем скриншоте представлена структура нашего экспериментального примера. Три файла, выделенные красным прямоугольником и относящиеся к задаче создания исполняемого exe-файла, рассматриваются ниже.
Несколько слов о структуре примера. Описание с исходными кодами данного java-примера представлено на странице Pluggable решение. Желающие могут поближе познакомиться с технологией динамической загрузки jar-файлов (классов), открыв страницу с подробным описанием исходников. На «выходе» данного примера получаем главный исполняемый модуль plugin-loader.jar, который использует common/plugin-api.jar для загрузки при необходимости (вызове) плагинов plugins/hello1.jar и plugins/hello2.jar.
Графический интерфейс примера, представленный на следующем скриншоте, включает 2 кнопки с надписями 'Plugin1' и 'Plugin2'. При нажатии на одну из кнопок приложение подгружает необходимый плагин, который меняет надпись на кнопке.
Изменения в исходных кодах
Необходимо отметить, что в модули PluginLoader.java и Boostrap.java были внесены изменения. Так в PluginLoader.java добавлена метка JLabel с отображением в интерфейсе версии Java :
В класс Boostrap.java внесены изменения, связанные с чтением классов (*.class) из jar'ника, а не из директории bin, как это представлено в исходных кодах. Если этого не сделать, то придётся с собой ещё «таскать» и директорию bin с class'ами.
Листинг класса Boostrap.java
В главный класс Boostrap внесены изменения определения url : ниже исходной закомментированной строки размещается код определения url в jar-файле.
Оборачивание исполняемого jar в exe-файл
Обычно плагин maven.plugins.launch4j включают в проектный pom.xml файл, в котором формируется и исполняемый jar-файл. Поскольку основная цель данной статьи наглядно продемонстрировать возможность оборачивания jar в exe, то уберем из проектного pom.xml все лишнее, что связано с формированием jar-файла. Правильнее сказать создадим такой pom.xml, который и будет решать основную задачу оборачивания jar в exe.
На следующих скриншотах представлены вкладки свойств созданного PluginLoader.exe.
Вы можете скачать исходники рассмотренного примера (40.1 Кб), включающего как jar-файлы, так и exe-файл с проектными pom.xml.
Процесс автоматизации сборки данного примера рассмотрен на странице описания Многомодульного maven проекта.
Если у меня есть исходный файл Java (*.Java) или файл класса (*.class), как я могу преобразовать его в a .exe файл?
Мне также нужен установщик для моей программы.
Исполняемый Файл Jar
см. также распространение вашего приложения в качестве исполняемого файла JAR и Oracle docs о том, как создать файл jar, который может быть выполнен с двойным щелчком мыши на Windows.
JSmooth
(EDIT: последний выпуск был в 2007 году)
JSmooth-это исполняемая оболочка Java. Он создает собственные пусковые установки Windows (стандарт. exe) для ваших приложений java. Это делает развертывание java намного более плавным и удобным для пользователя, так как он может найти любую установленную Java VM сам по себе.
JexePack
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.
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".
[Exe4j] Как использовать exe4j для создания файлов exe из настольных программ Java
Все мы знаем, что Java может упаковывать двоичные программы в исполняемые файлы jar.Двойной щелчок по этой банке имеет тот же эффект, что и двойной щелчок по exe, но все равно ощущается по-другому. Фактически, этот исполняемый файл jar также необходим для упаковки java-программы в exe.
eclipse, exe4j (программное обеспечение и загрузка учетной записи доступны в Интернете)
Первый шаг - упаковать проект java в исполняемый файл jar. Во-первых, взгляните на структуру моего проекта java. Main.java - это класс ввода программы, который содержит основную функцию, каталог config - это некоторые файлы конфигурации, а lib - это сторонняя библиотека классов.
Начать упаковку, Simulate (проект Java) - правая кнопка мыши - экспорт
Во всплывающем окне выберите «JAR-файл», нажмите «Далее»
Снимите отметки с каталогов «config» и «lib», а также с файлов конфигурации проекта «.classpath» и «.project», созданных eclipse, и нажмите «Далее»
Все по умолчанию, нажмите "Далее"
Во всплывающем окне выберите созданный файл MANIFEST.MF и нажмите «Готово».
Содержимое моего файла MANIFEST.MF:
Manifest-Version: 1.0Main-Class: bing.Main
Class-Path: . lib/ojdbc14.jar lib/poi- 2.5.1 .jar lib/jbcl.jar lib/JTattoo.jar lib/liquidlnf.jar
Created-By: IceWee
Указав «Main-Class» для достижения цели исполняемого файла jar. Фактически, мы наконец упаковываем проект в exe, путь к классу может не указываться, а путь к классу должен быть указан при упаковке exe.
Второй шаг - упаковать проект в exe. Здесь важно понимать, что не все файлы упакованы в exe. Файлы ресурсов не могут быть упакованы. Посмотрите вниз ↓
Сначала создайте папку в любом каталоге, желательно с тем же именем, что и название проекта. Я создал папку «Simulate» на диске F, а затем все файлы ресурсов и исполняемый файл jar, который мы сгенерировали (мой Simulate. Jar) копируются в эту папку, каталог config и каталог lib. Если вы опасаетесь, что jre не установлен на машине, на которой выполняется программа, вам необходимо скопировать каталог jre на свой компьютер. Установленный мной jre5, последняя структура каталогов:
Откройте exe4j, пропустите приветствие и щелкните сразу по второму элементу в левой навигации, потому что мы заранее упаковали проект java в исполняемый файл jar.
Во всплывающем окне выберите «JAR в режиме EXE» и нажмите «Далее».
В новом окне выберите имя для нашего приложения, затем выберите каталог генерации exe (мой F: \ Simulate) и нажмите «Далее»
Назовите исполняемый файл, который мы хотим сгенерировать. Если вы хотите создать собственный значок, выберите свой ICO-файл. Если вы не хотите запускать несколько программ на одном компьютере, вы можете установить флажок «Разрешить только один . »
Рекомендуется проверить Дополнительные параметры, а затем Далее.
Нажмите зеленый «+», чтобы указать путь к классу для запуска программы.
Сначала выберите наш собственный исполняемый файл jar (мой Simulate.jar), нажмите OK
Наш Simulate.jar добавлен в Class Path
Затем нажмите кнопку выбора основного класса в общем. Во всплывающем окне exe4j автоматически выполнит поиск классов, содержащих основной метод, во всех банках в текущем пути к классам и перечислит их, потому что в настоящее время я выбираю только банку моего собственный проект, и I В проекте только Main.jar содержит основной метод, поэтому он понятен с первого взгляда, выберите его и нажмите «ОК», класс записи программы настроен
После завершения настройки основного класса добавьте все необходимые сторонние библиотеки классов в путь к классу по очереди, метод такой же, как при добавлении «Simulate.jar», нажмите «Далее»
Введите минимальный номер версии Java Jre, то есть Jre ниже этой версии не может запустить программу, а затем нажмите «Дополнительные параметры» - «Последовательность поиска», чтобы настроить нашу JRE. Как я уже сказал, что, если Jre не установлен на клиент? , Ничего страшного, мы упаковываем один в
Щелкните зеленый значок «+», чтобы выбрать расположение объединенной JRE.
Во всплывающем диалоговом окне выберите «Directiony», а затем выберите папку JRE. Примечание. В этом каталоге JRE мы копируем каталог JRE машины в каталог текущего поколения exe. Мой каталог - F: \ Simulate \ jre5. Программа ниже использует относительный каталог, нажмите OK, чтобы завершить операцию связывания JRE.
После сборки JRE вы можете удалить переменную среды JAVA_HOME и переменную среды JDK_HOME, нажмите «Далее»
По умолчанию нажимаем «Далее»
По умолчанию нажимаем «Далее»
По умолчанию нажимаем «Далее»
ОК, готово, нажимаем «Выход»
Посмотри, как это работает!
Наш исполняемый файл jar и сторонний jar составляют менее 5 МБ, но каталог jre5 превышает 50 МБ. Если на целевой машине есть среда JRE, ее можно удалить. Каталог lib является сторонним файлом jar , который был упакован в exe, поэтому нет причин для его существования, поэтому минимальная конфигурация остается с каталогами "Simulate.exe" и "config"!
Решение этой проблемы - зарегистрировать программное обеспечение exe4j. В правом нижнем углу приветствия в exe4j есть кнопка для регистрации информации, нажмите кнопку регистрации.
Вы можете ввести имя пользователя и компанию в поле ниже. Введите регистрационный код, указанный ниже в лицензионном ключе, и нажмите ОК, чтобы успешно зарегистрироваться. При использовании exe4j для упаковки пакета jar в виде exe-файла всплывающее окно коробка не появится.
Регистрационный код выглядит следующим образом:
Если у меня есть исходный файл Java (*.Java) или файл класса (*.класса), как я могу преобразовать его в .exe-файл?
Мне также нужен установщик для моей программы.
Исполняемый Файл Jar
см. также распространение вашего приложения в виде исполняемого файла JAR и Oracle docs о том, как создать файл jar, который может быть выполнен с двойным щелчком мыши на Windows.
JSmooth
(EDIT: последний релиз был в 2007 году)
JSmooth-это исполняемая оболочка Java. Он создает собственные пусковые установки Windows (стандарт. exe) для ваших java-приложений. Это делает развертывание java намного более плавным и удобным для пользователя, так как он может найти любую установленную виртуальную машину Java сам по себе.
JexePack
LaunchAnywhere
(EDIT: Коммерческая с бесплатной пробной версией, последняя версия с 2012 года)
A LAX Executable-это исполняемый файл, который используется для запуска приложения 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 Install System - это установщик скриптов. Если вам интересно, есть пользователь внес примеры о том, как обнаружить наличие JRE и установить его автоматически, если требуемый JRE не установлен. (Просто чтобы вы знали, я не использовал NSIS раньше.)
для получения дополнительной информации об использовании NSIS для установки приложений Java, пожалуйста, взгляните на мой ответ на вопрос "каков наилучший способ распространения Java-приложений?"
вы можете попробовать многие из Java-оболочек, таких как JSmooth, JWrapper и другие утилиты, но вы также можете сделать a .bat со следующим кодом:
start javaw -jar JarFile.jar
и конвертировать летучую мышь в exe с помощью любого .летучая мышь .exe конвертер.
- installer + launcher
- windows или unix
- scriptable в Java
- АНТ задача
- множество настраиваемых стандартных панелей и действий
- дополнительно включает или загружает JRE
- можно также запустить службы windows
- нескольких языках
последние Java Web Start был улучшен, чтобы обеспечить хорошую автономную работу, а также разрешить "локальную установку". Это стоит посмотреть.
EDIT 2018: Java Web Start больше не входит в комплект с новейшими JDK. Oracle вместо этого подталкивает к "развертыванию вашего приложения локально с закрытой моделью JRE".
ИМХО JSmooth Кажется, делает довольно хорошую работу.
Если вам нужно преобразовать все ваше приложение в собственный код, т. е. EXE плюс DLL, есть ExcelsiorJET. Я нашел, что он хорошо работает и предоставил альтернативу связыванию JRE.
Я бы сказал, что launch4j является лучшим инструментом для преобразования исходного кода Java(.Java) для .файл EXE Вы даже можете связать jre с ним для распространения,и exe-файл даже может быть отображен. Хотя размер приложения увеличивается, он гарантирует, что приложение будет работать отлично, даже если у пользователя не установлен jre. Он также гарантирует, что вы можете предоставить конкретную jre, необходимую для вашего приложения, без необходимости его установки пользователем отдельно. Но, к сожалению, Ява теряет свое значение. Его поддержка нескольких платформ полностью игнорируется, и окончательное приложение поддерживается только для windows. Но это не имеет большого значения, если вы обслуживаете только пользователей windows.
можно использовать Janel. Это последнее работает в качестве запуска приложений или запуска служб (доступно с 4.икс.)
кроме того, вы можете использовать некоторые Java-to-c translator (например, JCGO) и скомпилировать сгенерированные файлы C в собственный двоичный файл (.exe) файл для целевой платформы.
меня можно простить за то, что я против преобразования программы java в a .exe приложение и у меня есть свои причины. основная причина в том, что Java-программа может быть скомпилирована в файл jar из среды IDE. Когда программа находится в .формат jar, он может работать на нескольких платформах, а не .exe, который будет работать только в очень ограниченной среде. Я за идею, что Java-программы shoudl не будут преобразованы в Exe, если это не очень необходимо. Всегда можно писать .файлы bat, которые запускают Java программы jar-файл.
Если это действительно необходимо, чтобы преобразовать его в exe, jar2exe конвертер молча делает это, и можно также прикрепить библиотеки, которые компилируются вместе с основным приложением.
вы можете конвертировать jar в exe с помощью jar2exe. Однако вам необходимо приобрести программное обеспечение. Если вам нужно программное обеспечение с открытым исходным кодом, я бы предложил JSmooth.
Читайте также: