простой взлом для апплетов: написать код на C с main и вызовом функции system как system («appletviewer java_src_file»);
Madhusoodan P
1
Будет ли .exe работать в системе Windows без JRE?
Арпит Агарвал
Просто чтобы завершить (не пробовал сам, потому что нам нужна exe-оболочка, а не установщик): Пакеты установщика также можно создавать с помощью javapackager (см. Docs.oracle.com/javase/8/docs/technotes/guides/deploy/… ) , Чтобы создать установщик EXE или MSI, дополнительно необходимо загрузить и установить Inno Setup или WiX.
Инструмент Java Packager компилирует, упаковывает и подготавливает приложения Java и JavaFX для распространения. Команда javapackager является версией командной строки.
- документация Oracle
В javapackagerутилите поставляется с JDK. Он может генерировать .exe файлы с -native exeфлагом, среди прочего.
Упаковывает ваш JAR, ресурсы и JVM для распространения в Windows, Linux и Mac OS X, добавляя собственный исполняемый файл, чтобы он выглядел как собственное приложение. Packr наиболее подходит для приложений с графическим интерфейсом.
- упаковщик README
packr - еще один инструмент с открытым исходным кодом.
JSmooth - это исполняемая оболочка Java. Он создает собственные средства запуска Windows (стандартные .exe) для ваших Java-приложений. Это делает развертывание Java намного более плавным и удобным для пользователя, поскольку оно способно найти любую установленную Java VM самостоятельно.
- сайт JSmooth
JSmooth имеет открытый исходный код и имеет функции, но он очень старый. Последний выпуск был в 2007 году.
JexePack - это инструмент командной строки (отлично подходит для автоматизированных сценариев), который позволяет вам упаковать ваше Java-приложение (файлы классов), опционально вместе с его ресурсами (например, GIF / JPG / TXT / и т. Д.), В один сжатый 32-битный Windows EXE , который работает с использованием среды выполнения Java Sun. Поддерживаются как консольные, так и оконные приложения.
- сайт JexePack
JexePack - пробная версия. Для производственного использования требуется оплата, и exe-файлы, созданные с помощью этого инструмента, будут отображать «напоминания» без оплаты. Также последний релиз был в 2013 году.
InstallAnywhere позволяет разработчикам создавать профессиональные программы установки для любой платформы. С InstallAnywhere вы быстро адаптируетесь к изменениям в отрасли, быстрее выходите на рынок и привлекаете клиентов. И узнайте уязвимость компонентов OSS вашего проекта перед отправкой.
- Установить сайт Anywhere
InstallAnywhere - это коммерческий / корпоративный пакет, который генерирует установщики для программ на основе Java. Вероятно, он способен создавать файлы .exe.
Исполняемые файлы JAR
В качестве альтернативы .exe-файлам вы можете создать файл JAR, который автоматически запускается при двойном щелчке, добавляя точку входа в манифест JAR .
Launch4j - это кроссплатформенный инструмент для упаковки Java-приложений, распространяемых в виде jars, в легкие собственные исполняемые файлы Windows. Исполняемый файл может быть настроен для поиска определенной версии JRE или использования связанной версии, и можно установить параметры времени выполнения, такие как начальный / максимальный размер кучи. Оболочка также обеспечивает лучшее взаимодействие с пользователем благодаря значку приложения, собственному экрану заставки перед JRE, пользовательскому имени процесса и странице загрузки Java в случае, если не удается найти соответствующий JRE.
ОБНОВЛЕНИЕ: 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 раньше.)
Хорошая обертка либо приносит JRE, либо устанавливает ее при необходимости и обрабатывает ошибки.
Турбьерн Равн Андерсен
16
Мы используем Install4J для создания установщиков для Windows или Unix.
Его легко настраивать до того момента, когда вы захотите написать сценарии для специальных действий, которые нельзя выполнить стандартными диалогами. Но даже при том, что мы настраиваем службы Windows с этим, мы только используем стандартные компоненты.
установщик + лаунчер
Windows или Unix
написанный на Java
муравейник
множество настраиваемых стандартных панелей и действий
опционально включает или загружает JRE
также можно запускать службы Windows
несколько языков
Я думаю, что Launch4J от той же компании (просто лаунчер - без инсталлятора).
PS: к сожалению, мне не платят за это одобрение. Мне просто нравится этот инструмент.
Последняя версия Java Web Start была улучшена для обеспечения нормальной работы в автономном режиме, а также для «локальной установки». Это стоит посмотреть.
РЕДАКТИРОВАТЬ 2018: Java Web Start больше не поставляется с новейшими версиями JDK. Вместо этого Oracle стремится к «развертыванию приложения локально с помощью закрытой модели JRE».
Очевидно, JWS настолько сильно ужесточил безопасность, что для его запуска требуется гораздо больше усилий, чем раньше. Это может все еще быть полезным для установщиков, все же.
Торбьерн Равн Андерсен
9
Если вам нужно преобразовать все ваше приложение в нативный код, то есть EXE плюс DLL, есть ExcelsiorJET . Я нашел, что это работает хорошо и предоставил альтернативу объединению JRE.
Я бы сказал, что launch4j - лучший инструмент для преобразования исходного кода java (.java) в файл .exe. Вы даже можете связать его с jre для распространения, а exe-файл можно даже обозначить значком. Хотя размер приложения увеличивается, он гарантирует, что приложение будет работать идеально, даже если у пользователя не установлен jre. Это также гарантирует, что вы сможете предоставить конкретную JRE, необходимую для вашего приложения, без необходимости установки пользователем отдельно. Но, к сожалению, Java теряет свою важность. Его мультиплатформенная поддержка полностью игнорируется, а финальное приложение поддерживается только для Windows. Но это не имеет большого значения, если вы обслуживаете только пользователей Windows.
В качестве альтернативы, вы можете использовать некоторые трансляторы java-to-c (например, JCGO ) и скомпилировать сгенерированные C-файлы в собственный двоичный (.exe) файл для целевой платформы.
Я очень недоволен эффективностью этого метода. Я должен увидеть это, чтобы поверить в это (подумайте о том факте, что большая часть кода Java - это вызовы API для JRE, и всего этого нет в C, не говоря уже о различиях в том, как работает язык).
Камило Мартин
3
Я могу быть прощен за то, что был против преобразования Java-программы в приложение .exe, и у меня есть свои причины. Основной из них является то, что Java-программа может быть скомпилирована в JAR-файл из множества IDE. Когда программа имеет формат .jar, она может работать на нескольких платформах, в отличие от .exe, который запускается только в очень ограниченной среде. Я за идею, что Java-программы не должны быть преобразованы в Exe, если в этом нет особой необходимости. Всегда можно написать .bat-файлы, которые запускают Java-программу, пока это jar-файл.
если действительно необходимо преобразовать его в exe, конвертер Jar2Exe делает это молча, и можно также присоединить библиотеки, скомпилированные вместе с основным приложением.
Дело в том, что мощь Java заключается в переносимости, но многим людям просто необходимы базовые версии Windows. Лично я люблю концепцию Java ... но хотел бы распространять то, что мои пользователи могли бы запускать, не загружая JRE.
Бальмипур
2
Вы можете конвертировать jar в exe используя jar2exe . Однако вам необходимо приобрести программное обеспечение. Если вам нужно программное обеспечение с открытым исходным кодом, я бы предложил JSmooth .
Ответы:
javapackager
В
javapackager
утилите поставляется с JDK. Он может генерировать .exe файлы с-native exe
флагом, среди прочего.WinRun4J
WinRun4J - это утилита с открытым исходным кодом. У этого есть много особенностей.
packr
packr - еще один инструмент с открытым исходным кодом.
JSmooth
JSmooth имеет открытый исходный код и имеет функции, но он очень старый. Последний выпуск был в 2007 году.
JexePack
JexePack - пробная версия. Для производственного использования требуется оплата, и exe-файлы, созданные с помощью этого инструмента, будут отображать «напоминания» без оплаты. Также последний релиз был в 2013 году.
InstallAnywhere
InstallAnywhere - это коммерческий / корпоративный пакет, который генерирует установщики для программ на основе Java. Вероятно, он способен создавать файлы .exe.
Исполняемые файлы JAR
В качестве альтернативы .exe-файлам вы можете создать файл JAR, который автоматически запускается при двойном щелчке, добавляя точку входа в манифест JAR .
За дополнительной информацией
Отличным источником информации по этой теме является статья Excelsior « Преобразование Java в EXE - почему, когда, когда нет и как ».
См. Также сопутствующую статью « Лучшие инструменты преобразования JAR в EXE, бесплатные и коммерческие ».
источник
Launch4j
источник
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? "
источник
Вы можете создать командный файл со следующим кодом:
и конвертировать .bat в .exe, используя любой конвертер .bat в .exe.
источник
Мы используем Install4J для создания установщиков для Windows или Unix.
Его легко настраивать до того момента, когда вы захотите написать сценарии для специальных действий, которые нельзя выполнить стандартными диалогами. Но даже при том, что мы настраиваем службы Windows с этим, мы только используем стандартные компоненты.
Я думаю, что Launch4J от той же компании (просто лаунчер - без инсталлятора).
PS: к сожалению, мне не платят за это одобрение. Мне просто нравится этот инструмент.
источник
Последняя версия Java Web Start была улучшена для обеспечения нормальной работы в автономном режиме, а также для «локальной установки». Это стоит посмотреть.
РЕДАКТИРОВАТЬ 2018: Java Web Start больше не поставляется с новейшими версиями JDK. Вместо этого Oracle стремится к «развертыванию приложения локально с помощью закрытой модели JRE».
источник
Если вам нужно преобразовать все ваше приложение в нативный код, то есть EXE плюс DLL, есть ExcelsiorJET . Я нашел, что это работает хорошо и предоставил альтернативу объединению JRE.
источник
ИМХО JSmooth, кажется, делает довольно хорошую работу.
источник
Я бы сказал, что launch4j - лучший инструмент для преобразования исходного кода java (.java) в файл .exe. Вы даже можете связать его с jre для распространения, а exe-файл можно даже обозначить значком. Хотя размер приложения увеличивается, он гарантирует, что приложение будет работать идеально, даже если у пользователя не установлен 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 .
источник