当前位置: 首页 > 知识库问答 >
问题:

jpackage在使用--app image选项创建安装程序时崩溃

马安邦
2023-03-14

我试图使用jpack为我的Java应用程序创建一个安装程序。我在Windows 10上使用OpenJDK 15.0.1。我可以建立一个安装程序使用

jpackage --input C:\MyApp --main-jar MyApp.jar

这基本上是可行的,但是安装的应用程序缺少资源文件。根据文档,我应该能够构建一个应用程序映像,将我的资源文件添加到映像中,然后根据修改后的应用程序映像构建安装程序,如下所示

cd C:\MyApp
mkdir build
copy MyApp.jar build
jpackage --type app-image --n MyAppImage --input C:\MyApp\build --main-jar MyApp.jar
copy <resource files> MyAppImage
jpackage --app-image MyAppImage --name MyAppInstaller

这构建了MyAppImage,但是当我运行jpack--app-Image时,它会崩溃。输出如下:

WARNING: Using incubator modules: jdk.incubator.jpackage
java.io.IOException: Command [C:\Program Files (x86)\WiX Toolset v3.11\bin\light.exe, -nologo, -spdb, -ext, WixUtilExtension, -out, C:\Users\Jerry\AppData\Local\Temp\jdk.incubator.jpackage10106877493523723400\images\win-exe.image\MyAppInstall-1.0.msi, -sice:ICE27, -loc, C:\Users\Jerry\AppData\Local\Temp\jdk.incubator.jpackage10106877493523723400\config\MsiInstallerStrings_en.wxl, C:\Users\Jerry\AppData\Local\Temp\jdk.incubator.jpackage10106877493523723400\wixobj\main.wixobj, C:\Users\Jerry\AppData\Local\Temp\jdk.incubator.jpackage10106877493523723400\wixobj\bundle.wixobj]in C:\Users\Jerry\AppData\Local\Temp\jdk.incubator.jpackage10106877493523723400\images\win-msi.image\MyAppInstall exited with 103 code

还有其他人遇到过这种情况吗?我应该试试什么?

(这是对早期帖子的跟进)

共有1个答案

宣俊豪
2023-03-14

好像是:https://bugs.openjdk.java.net/browse/JDK-8254783

当应用程序名称与安装程序名称不同时,jpack在Windows上失败

我可以用JDK 15 build 36重现你的崩溃。

如果我为应用程序映像指定了相同的参数--name。在您的情况下,工作命令应为:

jpackage --app-image MyAppImage --name MyAppImage

(与app image命令的名称相同,但您可能需要更改名称)。

不管怎样,这在最新的JDK 16-ea中是有效的。(另见关于JBS问题的评论)。

 类似资料:
  • 我正在尝试使用JPackage创建一个应用程序图像(在使用OpenJDK 14的Ubuntu 18.04系统上) 我找到的所有例子都是这样的 运行此命令时,会得到一个目录和我可以启动一个可执行文件来运行应用程序。但整个东西并没有像我所希望的那样绑定到一个AppImage文件中。 我错过了什么?

  • 想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。 我正在开发一个javafx应用程序。此应用程序与设备通信,因此设备JAR不是模块化的,它们附带一些添加到开发中的dll文件。现在,它在Netbeans 12.6上运行得很好,但在我使用jdk-17 jpackage创建安装程序时就不是了。我相信我遗漏了一些东西,但由于我对这个jpackage还很陌生,所以我不知道如何解决它。以下是

  • 我使用jpack打包了我的java应用程序。当我使用打包的安装程序安装它时,安装后的目录始终是

  • 以前我使用Izpack安装我的Java应用程序,当用户想要安装新版本时,他们只需重新安装到相同的位置(c“/Program files/jthink/jaikoz”),这将用较新的文件替换较旧的文件,用户不需要先卸载旧版本。 我现在已经为应用程序的最新版本构建了一个使用JPackage(现在是Java,JDK14的一部分)的安装程序,这将继续安装到相同的位置。问题是因为JPackage强制了一个新

  • 在Linux上创建JPackage安装程序Java应用程序的规范是什么? 我已经为Windows创建了一个安装程序,现在正在Linux上创建一个(使用Ubuntu) 到目前为止,我已经: 对于创建一个debian安装程序,它可以工作(安装尚未正常运行),但我对一些事情感到困惑,我不太熟悉linux环境。 无法看到linux-菜单-组或linux-快捷方式的效果 我应该使用linux-菜单-组还是l

  • 我需要帮助一个问题,我遇到了包装我的程序与JPackage。该程序是在Eclipse中创建的非模块化JavaFX应用程序。在Eclipse中,应用程序可以精确地编译和运行。但当我使用命令提示符进行编译和运行时,编译工作了,但应用程序不再运行了。我得到以下错误消息: javac--module-path%path_to_fx%--add-modules javafx.controls,javafx.