【发布时间】:2020-10-31 03:35:27
【问题描述】:
我们已经用 jpackage 打包了我们的应用程序,它运行良好。
不知何故,有人无意中从安装目录中删除了主 jar。从那以后,“.exe”无法启动(显然)。问题是它没有显示任何类型的错误消息,所以我们花了一段时间才意识到出了什么问题。
有没有办法让 exe 至少显示一些有用的错误信息?
【问题讨论】:
我们已经用 jpackage 打包了我们的应用程序,它运行良好。
不知何故,有人无意中从安装目录中删除了主 jar。从那以后,“.exe”无法启动(显然)。问题是它没有显示任何类型的错误消息,所以我们花了一段时间才意识到出了什么问题。
有没有办法让 exe 至少显示一些有用的错误信息?
【问题讨论】:
如果您使用jpackage --win-console 参数激活控制台,jpackage 生成的 EXE 的问题会更容易诊断。
您可能不想对主应用程序 EXE 执行此操作,因此您可以使用启用控制台和相同主类的第二个启动器分发您的应用程序。只需创建一个新文件appwithconsole.properties 并使用:
jpackage --add-launcher debugversion=appwithconsole.properties ... rest of command line.
appwithconsole.properties
main-class=as.used.in.command.line
win-console=true
那么删除jar后试试debugversion.exe,应该比不带控制台的EXE报错更清楚:
Error: Could not find or load main class ...
【讨论】:
--add-launcher在JDK15 jpackage中不起作用,但在JDK14或16EA中可以
--add-launcher 在 Java 15 中被破坏是否有更官方的来源?我正在经历这种情况,而这条评论是我能找到的唯一可以确认我没有疯的东西。