从HeadlessGraphicsEnvironment.getDefaultScreenDevice抛出的java.awt.HeadlessException

我需要在java服务器上进行一些图像处理(Debian with java version“1.6.0_12”),我从我的代码接收java.awt.HeadlessException:

java.awt.HeadlessException at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:64) at WaxOn.getDefaultConfiguration(WaxOn.java:341) 

即使java.awt.headless设置为true(这个代码打印明显如此):

 if (!java.awt.GraphicsEnvironment.isHeadless()) { logger.warn("Headless mode is not enabled"); } else { logger.info("Headless mode"); } 

这是抛出exception的代码:

 public static GraphicsConfiguration getDefaultConfiguration() { GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice gd = ge.getDefaultScreenDevice(); return gd.getDefaultConfiguration(); } 

知道怎么解决这个问题吗?

无头时,你没有屏幕设备。 文档很清楚 :

抛出:HeadlessException – 如果isHeadless()返回true

您的代码似乎是在没有可用图形设备的计算机上获取默认图形设备配置。 这没有多大意义,永远不会起作用。

如果您能解释为什么要尝试这样做(在无头机器上),我们可以提供替代方案。