如果缺少 jar,使用 "jpackage" 创建的可执行文件会无声地失败

executable created with "jpackage"silently fails if jar is missing

我们已经用 jpackage 打包了我们的应用程序,它运行良好。

不知何故有人无意中从安装目录中删除了主 jar。从那时起,“.exe”就无法启动(很明显)。问题是它没有显示任何类型的错误消息,所以我们花了一段时间才意识到出了什么问题。

有没有办法让 exe 至少显示一些有用的错误消息?

如果您使用 jpackage --win-console 参数激活控制台,则 jpackage 生成的 EXE 问题更容易诊断。

您可能不想对主应用程序 EXE 执行此操作,因此您可以使用第二个启动器分发您的应用程序,该启动器启用了控制台并且相同 main-class。只需创建一个新文件 appwithconsole.properties 并使用:

jpackage --add-launcher debugversion=appwithconsole.properties ... rest of command line.

appwithconsole.properties

main-class=as.used.in.command.line
win-console=true

然后试试debugversion.exe删除jar后,应该比没有console的EXE报错更清楚:

Error: Could not find or load main class ...