3

Javaサーバー(Javaバージョン "1.6.0_12"のDebian)で画像処理を行う必要があり、コードから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();
}

これを解決する方法はありますか?

4

2 に答える 2

5

ヘッドレスの場合、スクリーンデバイスはありません。ドキュメントは明確です:

スロー:HeadlessException-isHeadless()がtrueを返す場合

于 2010-12-26T16:04:26.567 に答える
1

コードは、使用可能なグラフィックデバイスがないマシンでデフォルトのグラフィックデバイス構成を取得しているようです。これはあまり意味がなく、機能することはありません。

(ヘッドレスマシンで)これを行おうとしている理由を説明できれば、別の方法を提供できる可能性があります。

于 2010-12-26T16:16:37.057 に答える