以编程方式设置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