如果缺少 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 ...
我们已经用 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 ...