Среда: Win10, Oracle JDK 9, Eclipse, jlink, javapackager.
Контекст: я пытаюсь создать исполняемый файл с javapackager
с пользовательским образом времени выполнения java, созданным с помощью jlink
, читая документация javapackager. Не устанавливается.
Jlink создал zip-файл, содержащий все мои файлы классов java и инкапсулированные ресурсы (это означает, что у меня нет доступа к ним из системного обозревателя) + пользовательский jre. Он поставляется с программой запуска .bat для запуска приложения. Все работает нормально.
Walkthrow: 1-й я обнаружил, что есть jpackage
утилита OpenJDK , доступная из OpenJDK14, чтобы сделать модульное приложение Java исполняемым, которое все еще находится в стадии разработки. Я не нашел способа с этим работать. Позже я исследовал Inno Setup, но он не удовлетворяет моим потребностям (потому что мне не нужен установщик). Позже я обнаружил, что, начиная с Oracle JDK 8, существует javapackager
инструмент для создания исполняемых файлов для каждой платформы (max, linux, windows .. ).
Я не могу заставить работать javapackager. Это одна из различных попыток команды, которую я выполнил в Windows cmd.
javapackager
-deploy
-native exe
--add-modules myModule,javafx.graphics,javafx.controls
--module-path "C:\path\to\javafx-jmods;C:\path\to\target\classes;C:\path\to\more\jmods"
-outdir "C:\myApp"
-outfile MyApp
-appclass myPackage.MyApp
-name "MyApp"
С помощью предыдущей команды я получаю сообщение об ошибке:
Error: No application jars foun
Итак, я понял, что смешиваю команду -deploy и ее параметры с командой -createjar и ее параметрами.
Может кто-нибудь объяснить, как сгенерировать .exe с помощью javapackager?
Изменить 1
Пробовал jpackage (используя jdk 14 с установщиком Wix, необходимым в качестве зависимости):
jpackage --package-type exe -o outputdir --name myApp --add-modules myapp,javafx.graphics,javafx.controls
--module-path "C:\path\to\some\jmods;C:\path\to\myTarget;C:\path\to\javafx-sdk-11.0.2plugin" -m myapp/App
Выход: myApp.1.0.exe. Он открывает cmd и «установщик», но не запускает myApp, поскольку в него не включена настраиваемая среда выполнения java.