MacOS上基于ssh的Java Swing应用程序引发headless异常

MacOS上基于ssh的Java Swing应用程序引发headless异常,java,swing,headless,java-10,Java,Swing,Headless,Java 10,嗯(不好意思),我原来的帖子和标题对我来说完全是一个虚惊一场。我在Mac上使用ssh客户端,而不是终端应用程序。当然,在该ssh客户机下运行javaswing应用程序会抛出headless异常 它可以通过使用命令行选项“-Djava.awt.headless=false”来修复 谢谢大家的帮助,也很抱歉浪费时间 F 原创,完全误导的帖子如下 我们有一个Java Swing应用程序已经“在野外”很多年了。我们将它作为jar文件发送,非技术用户通过双击jar来启动它。它会定期更新,最近一次是在去年年

嗯(不好意思),我原来的帖子和标题对我来说完全是一个虚惊一场。我在Mac上使用ssh客户端,而不是终端应用程序。当然,在该ssh客户机下运行javaswing应用程序会抛出headless异常

它可以通过使用命令行选项“-Djava.awt.headless=false”来修复

谢谢大家的帮助,也很抱歉浪费时间

F

原创,完全误导的帖子如下

我们有一个Java Swing应用程序已经“在野外”很多年了。我们将它作为jar文件发送,非技术用户通过双击jar来启动它。它会定期更新,最近一次是在去年年底使用Java8

最近,一位用户报告说该应用程序无法启动,并报告正在运行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\u TOOL\u OPTIONS”环境变量完成同样的任务。不幸的是,这两个选项对用户来说都不是一个简单的修复程序,因此我们可能必须部署一个新版本,在代码中设置属性


奇怪的是,我之所以写这篇文章,是因为我在网上找不到这方面的信息。我认为这会影响很多很多应用程序。我错过什么了吗?这是虫子吗?或者Oracle在什么地方记录了这种变化?或者,如果我使用Java 10库重新编译,这可能会消失?

“这是一个bug吗?”请检查。我刚刚编写了一个简短的程序,使用Java 10.0.2在JEditorPane中无头加载网页并将其打印到文件中。当然,我使用了
-Djava.awt.headless=true
;我假设
false
是一个输入错误?“或者如果我使用Java10库重新编译,这可能会消失?”——这是不太可能的。行为的改变(如果真的有)将发生在执行平台上的库中。你能提供一个我们可以在不同Java平台上运行的MVCE吗?@VGR-不,不是打字错误。这是一个GUI应用程序,所以我需要将headless设置为false才能启动它。Java 10的默认值似乎是正确的,但过去不是。问题发生在什么操作系统上?在Linux/Unix系统上,默认值取决于设置的
显示
环境。