java.awt.HeadlessException - 未显示小程序 - 第2部分

时间:2009-02-03 20:14:16

标签: java applet

这是参考问题java.awt.HeadlessException - 不显示Applet。 java.awt.HeadlessException - Applet not displayed

在tomcat的startup.sh文件中添加“export DISPLAY =:0.0”后,HeadlessException消失了。现在,代码的某些部分在批处理服务器上运行,该服务器是一个单独的服务器。在批处理服务器上调用代码时,会发生相同的HeadlessException。当我在批处理服务器的启动文件中添加相同的“export DISPLAY =:0.0”时,异常消失但它为批处理服务器上运行的其他(非Java)应用程序创建了问题。这可能是因为我们正在覆盖适用于其他应用程序的显示器。

接下来,我将JAVA_OPTS =“ - Djava.awt.headless = true”导出到批处理服务器的启动文件,但它不起作用。我看到Sun的以下链接说代码应检查无头异常。

http://java.sun.com/j2se/1.4.2/docs/guide/awt/AWTChanges.html

那么抓住无头的异常会让它发挥作用吗?像:

try {

 //Code that throws headless exception

} catch (HeadlessException e) {

  printStacktrace(); //basically do nothing
}

1 个答案:

答案 0 :(得分:2)

您可以捕获该异常,或者您可以通过先检查来避免它:

if (! java.awt.GraphicsEnvironment.isHeadless()) {
    // code that throws headless exception
} else {
  log.info("Skipping GUI portion")
}

不要在没有人会看的服务器上设置DISPLAY,或者你可能最终等待有人在没人看到的对话框上点击OK。