Встроить JRE в исполняемый файл Windows?



предположим, я хочу распространять приложение Java.



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



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



но предположим теперь, что я не хочу зависеть от конечный пользователь, имеющий право JRE (или любой JRE вообще, если на то пошло) установлен. Я хочу распространять JRE с моим приложением, и мое приложение должно работать на этом JRE. Достаточно просто создать исполняемый файл установщика Windows и встроить в него папку со всеми необходимыми файлами JRE. Но тогда я распространяю installer и ни одного файла приложения.



есть ли способ встроить оба приложения,и A JRE, в an .exe-файл, выступающий в качестве средства запуска приложений (а не как установщик)?

702   11  

11 ответов:

попробуйте использовать птиц и должны быть справочники. Avian позволяет встроить облегченную виртуальную машину в ваше приложение. Поддерживаются Linux, MacOS, Windows и iOS. И ProGuard позволяет вам сжимать большой файл jar для подготовки к встраиванию.

есть новый инструмент, который делает это: Packr
https://github.com/libgdx/packr

довольно много вариантов вокруг, коммерчески это очень хорошо:

http://www.excelsior-usa.com/jet.html

есть два ключевых варианта с открытым исходным кодом GCJ и VMKit

http://gcc.gnu.org/java/ и http://vmkit.llvm.org/

другие более длительные пути будут включать IKVM.NET:

http://www.ikvm.net/

который является .NET JVM, который может быть статически скомпилированный ехе

есть ли способ встроить как приложение, так и JRE, в an .exe-файл, действующий как средство запуска приложений (а не как установщик)?

если коммерческий инструмент подходит для вас, install4j решает эту проблему очень плавно (см. "свойства" страницы). Он может генерировать и пусковые установки и установщики приложений.

Я бы не хотел повторяться слишком много, поэтому проверьте, например,это раньше ответ где я подключил его (как установщик builder, но это не имеет большого значения здесь).

сводка / итог: install4j может создать собственный .exe пусковые установки, которые абсолютно делают не зависит от предустановленного JRE (или любых других конкретных библиотек), и он предлагает гибкие возможности для связывания (и обнаружения) JRE.

Netbeans позволяет упаковывать проект Java SE в собственный установщик приложений, встраивая JRE. Это здесь:https://netbeans.org/kb/docs/java/native_pkg.html :)

Я знаю, что немного опоздал на эту вечеринку, однако похоже, что ej-technologies (люблю их вещи) имеет новое решение под названием exe4j который будет делать именно так, как OP хотел без каких-либо смешных дел, необходимых.

http://www.ej-technologies.com/products/exe4j/overview.html

Если вы работаете в проекте с открытым исходным кодом, они обеспечивают свободные лицензии (вам просто нужно связаться с ними). Если это коммерческий проект, то требуется лицензия... но в $69 USD за лицензию, это чертовски дешево и стоит имхо.

С их сайта:

If you want your own process name instead of java.exe in the task manager
and a user friendly task-bar grouping, exe4j does the job for you.

exe4j helps you with starting your Java applications in a safe way, displaying
native splash screens, detecting or distributing suitable JREs and JDKs,
startup error handling and much more.

JSmooth может сделать это в соответствии с документацией. Я только попробовал его без встроенного JRE, но был очень доволен. Это сценарий с ant, и мы строим на Linux.

http://jsmooth.sourceforge.net/features.php

вы можете взглянуть на: http://ulibgcj.sourceforge.net/uswt.html Он имеет библиотеку micro-swt, которая упрощает создание графического интерфейса с помощью SWT и посмотрите на затмение документация застройщика

Install4j является отличным инструментом для этого перегиба цели.Также вы можете проверить JSmooth или launch4j-все, хотя я пытался связать jres с JSmooth и не смог..

Я нашел Engima Projector x86 / x64 лучше, чем BoxedApp Packer

Если вы получаете мягкий miminizejre по packr, чем скопировать приложение myapp.jar в launcher\jre\bin\

и копировать из установленного примера jre C:\Program файлы\Files\Java\1.8.0_xxx\bin\javaw.exe для запуска\jre\bin\

откройте вход Engima Protector - > javaw.exe из launcher\jre\bin\

и идут варианты если вы хотите высокое обжатие и Найти разное - > Командная строка " - jar приложение myapp.банку"

и нажмите кнопку защитить и ждать целых DLL и jar в exe

убедитесь, что ваш myapp.jar должен генерировать Eclipse с помощью "Package required libraries into generated JAR", потому что вы не волнуетесь, если вы импортировали много библиотек, например lwjgl или JavaFX, чем вы должны проверить, встроен ли javaw_protected.EXE-файл включает в себя важные файлы примеров активов.

но BoxedApp Packer такой же слишком BoxedApp Packer немного больше, чем Engima Protector. Протектор-это почти лучшее небольшое вложение javaw.exe с активами / ресурсами. Чем они не могут взломать файлы jar... Я надеюсь, что вы довольны собственной jar в exe как менее 4 мб без каталога lib - если у вас есть проблемы с jvm.сообщение об ошибке cfg это означает, что вы не копируете встроенный exe в корневой каталог jre или jdk

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

Я надеюсь, что у вас нет проблем, если вы используете протектор x86, чем это нужно использовать i586, Протектор 64-разрядных JRE для 64-разрядных

Если вы используете Protector x64 с jre x86 / i386 - это нормально без проблем. Он отлично работает.

с наилучшими пожеланиями

/ / EDIT:

обновленная новая версия EXCELSIOR JET + VIRTUAL BOX или PROTECTOR-это почти лучшие "встроенные приложения"

Проверьте youtube:https://www.youtube.com/watch?v=ctbIxq-1MGE

Comments

    Ничего не найдено.