java.awt.HeadlessException, выброшенное из HeadlessGraphicsEnvironment.getDefaultScreenDevice - PullRequest
3 голосов
/ 26 декабря 2010

Мне нужно выполнить некоторую обработку изображения на 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)

Даже если для 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 ]

4 голосов
/ 26 декабря 2010

Когда у вас нет головы, у вас нет экранного устройства. Документация ясна :

Выдает: HeadlessException - если isHeadless () возвращает true

1 голос
/ 26 декабря 2010

Ваш код, похоже, получает конфигурацию графического устройства по умолчанию на компьютере, на котором нет используемого графического устройства.Это не имеет особого смысла и никогда не сработает.

Если бы вы могли объяснить, почему вы пытаетесь это сделать (на машине без головы), мы могли бы предложить альтернативу.

...