3

我正在尝试jpackage为我的 Java 应用程序创建安装程序。我在使用 OpenJDK 15.0.1 的 Windows 10 上。我可以使用构建安装程序

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

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

jpackage --type app-image -n MyAppImage
copy <resource files> MyAppImage
jpackage --app-image MyAppImage --name MyAppInstaller

但是,当我尝试时jpackage --type app-image,进程永远不会终止,我必须用 control-C 来终止它。当我检查MyAppImage目录时,它有一个子目录app,它或多或少反映了C:\MyApp. 这些内容包括MyAppImage,它会递归地复制到app子目录中,从而创建可能无限的目录集:C:\MyApp\MyAppImage\app\MyAppImage\app\MyAppImage...

如果我手动删除app\MyAppImage并尝试jpackage --app-image,jpackage 会因 java.io.IOException 而崩溃。

有人遇到过这种情况么?我应该尝试什么?

4

1 回答 1

2

事实证明,shell 工作目录有所不同。--input 指定的目录不应与将创建应用映像的目录相同。

我通过创建子目录 C:\MyApp\build 并复制 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

递归文件复制不再发生。但是我在运行时仍然遇到错误jpackage --app-image。我将把它作为后续帖子的主题。

于 2020-11-08T22:54:33.720 回答