嗯(嘘),我的原始帖子和标题对我来说是一个完全错误的警报。我在Mac而不是终端应用程序上使用ssh客户端。当然,在该ssh客户端下运行Java Swing应用程序会抛出无头的异常。
可以通过使用命令行选项“ -Djava.awt.headless = false”进行修复。
感谢大家的帮助,对于浪费时间表示歉意。
F。
随后是原始的,完全令人误解的帖子!
多年来,我们一直在“狂野”开发Java Swing应用程序。我们将其作为jar文件发送,非技术用户可以通过双击jar来启动它。它会定期更新,最近一次是在去年末使用Java 8更新。
最近,一个用户报告该应用程序无法启动,并报告运行Java10。果然,当我通过命令行从本地对Java 10进行测试时,我得到:
Exception in thread "main" java.awt.HeadlessException
at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:208)
我可以使用“ -Djava.awt.headless = false”通过命令行确认是否可以成功启动该应用程序。或者,我可以使用“ JAVA_TOOL_OPTIONS”环境变量来完成相同的操作。不幸的是,这两个选项都不是用户的简单解决方案,因此我们可能不得不部署一个新版本,以代码形式设置属性。
奇怪的是,我写这个的原因是,我在网上找不到任何东西。我认为这会影响很多应用程序。我想念什么吗?这是错误吗?还是Oracle在某个地方记录了此更改?或者,也许如果我用Java 10库重新编译,那会消失吗?