以编程方式设置java.awt.headless = true

我正在尝试java.awt.headless=true在应用程序启动期间进行设置,但似乎为时已晚,非无头模式已经启动:

static {

System.setProperty("java.awt.headless", "true");

/* java.awt.GraphicsEnvironment.isHeadless() returns false */

}

除此之外,还有另一种方法让无头为真-Djava.awt.headless=true吗?我不希望在控制台上进行任何配置。

回答:

我正在使用一个main()类,该类在常量(和其他静态代码)中静态加载JFreeChart的不同部分。

将静态加载块移到类的顶部解决了我的问题。

  public class Foo() {

private static final Color COLOR_BACKGROUND = Color.WHITE;

static { /* too late ! */

System.setProperty("java.awt.headless", "true");

System.out.println(java.awt.GraphicsEnvironment.isHeadless());

/* ---> prints false */

}

public static void main() {}

}

  public class Foo() {

static { /* works fine! ! */

System.setProperty("java.awt.headless", "true");

System.out.println(java.awt.GraphicsEnvironment.isHeadless());

/* ---> prints true */

}

private static final Color COLOR_BACKGROUND = Color.WHITE;

public static void main() {}

}

当考虑它时,这是完全有道理的:)。巨虎!

以上是 以编程方式设置java.awt.headless = true 的全部内容, 来源链接: utcz.com/qa/428861.html

回到顶部