我想为我的jar文件创建一个windows安装程序。我不想在我想部署到的目标计算机上安装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工具集可以工作。
如果有人能提供一步一步的说明,特别是如果解决方案涉及install4j,因为有很多不同的步骤你可能会错过一些东西。我使用的是更新版本的install4j,它与在线教程和视频不匹配。菜单选择发生了重大变化。也许我需要使用旧版本的install4j。
请参阅我的相关文章:如何打包java jar文件以在没有安装JRE的Mac上运行?
仔细检查您的应用程序是否直接运行,然后在继续之前解决任何问题:
java -cp NtbnsProj.jar myJFrame
看起来jpackage
已经工作了,并生成了安装程序my_pkg-1.0.exe
。当你运行my_pkg-1.0.exe
时,检查你是否有这个文件,然后运行它:
C:Program Filesmy_pkgmy_pkg.exe
如果失败,请使用额外的参数--win-console --app-version 1.1
重新运行jpackage,这将在启用控制台的情况下生成my_pkg-1.1.exe
。重新安装并运行C:Program Filesmy_pkgmy_pkg.exe
可能会报告一条有用的错误消息,指出真正的问题所在。
如果每次都不升级--app-version
,Windows将不会更新现有的1.0版本,或者在重新应用相同版本my_pkg-1.0.exe
的重新构建之前必须先卸载。它只是在没有警告的情况下运行和停止。
请参阅这篇关于如何自动设置应用程序版本的文章。
我开始工作了@DuncG很有帮助地回答了我的问题。我在jar文件所在的目录中有一堆额外的文件,所以我只创建了一个新目录,并只在其中放了NtbnsProj.jar。然后我运行了以下命令:jpackage --name Test --input . --main-jar NtbnsProj.jar