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

时间:2010-12-26 15:45:29

标签: java awt headless

我需要在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");
}

这是抛出异常的代码:

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

知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

无头时你没有屏幕设备。 documentation is clear

  

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

答案 1 :(得分:1)

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

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