从 HeadlessGraphicsEnvironment.getDefaultScreenDevice 抛出 java.awt.HeadlessException

Omr*_*dan 3 java awt headless

我需要在 java 服务器上进行一些图像处理(Debian 的 java 版本为“1.6.0_12”),并且我从代码中收到 java.awt.HeadlessException:

java.awt.HeadlessException
    at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:64)
    at WaxOn.getDefaultConfiguration(WaxOn.java:341)
Run Code Online (Sandbox Code Playgroud)

即使 java.awt.headless 设置为 true(通过此代码打印可以明显看出):

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

这是抛出异常的代码:

public static GraphicsConfiguration getDefaultConfiguration()
{
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice gd = ge.getDefaultScreenDevice();
    return gd.getDefaultConfiguration();
}
Run Code Online (Sandbox Code Playgroud)

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

Boz*_*zho 5

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

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