Как создать установщик Windows для файла java jar?

Nov 28 2020

Я хочу создать установщик Windows для моего файла jar. Я не хочу устанавливать jre / jdk на целевой компьютер, на который я хочу развернуть.

Я попробовал jpackage (часть Java 14), и у меня это не сработало. Я попробовал следующую команду:

jpackage --input target/ --name my_pkg --main-jar NtbnsProj.jar --main-class myJFrame --type exe --java-options '--enable-preview'

Он создает файл my_pkg-1.0.exe, но я не могу его запустить.

На данный момент я готов попробовать даже сторонние инструменты. Я безуспешно пробовал install4j. Другой веб-сайт, который я нашел, сказал использовать install4j с Inno Setup Compiler. Это было сложнее и тоже не сработало. Я подумал, может, WiX Toolset подойдет.

Если кто-то может предоставить пошаговые инструкции, особенно если решение включает install4j, так как есть много разных шагов, на которых вы можете что-то пропустить. Я использовал более новую версию install4j, и она не соответствовала онлайн-руководствам и видео. Пункты меню значительно изменились. Возможно, мне нужно использовать более старую версию install4j.

См. Мою статью по теме: Как упаковать файл java jar для запуска на Mac без установленной JRE?

Ответы

1 DuncG Nov 28 2020 at 22:31

Дважды убедитесь, что ваше приложение запускается напрямую, затем исправьте все проблемы, прежде чем продолжить:

java -cp NtbnsProj.jar myJFrame 

Похоже, что jpackageсработало и сгенерировал ваш установщик my_pkg-1.0.exe. Когда вы запустите my_pkg-1.0.exeпроверку, что у вас есть этот файл, затем запустите его:

C:\Program Files\my_pkg\my_pkg.exe

Если это не удается, повторно запустите jpackage с дополнительными аргументами --win-console --app-version 1.1, это будет сгенерировано my_pkg-1.1.exeс включенной консолью. При повторной установке и запуске C:\Program Files\my_pkg\my_pkg.exeможет появиться полезное сообщение об ошибке, указывающее на настоящую проблему.

Если вы не --app-versionобновляете каждый раз, Windows НЕ будет обновлять существующий выпуск 1.0, или вам придется удалить установку перед повторным применением повторной сборки той же версии my_pkg-1.0.exe. Он просто запускается и останавливается, не предупреждая вас.

См. Этот пост о том, как установить app-ver автоматически.

macdays Dec 03 2020 at 07:31

Я заставил его работать! @DuncG очень помог мне ответить на мой вопрос. У меня была куча дополнительных файлов в каталоге, где находился файл jar, поэтому я просто создал новый каталог и поместил в него только NtbnsProj.jar. Затем я выполнил следующую команду:jpackage --name Test --input . --main-jar NtbnsProj.jar