小编典典
我正在使用一个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() {}
}
通过将Java移动到类的顶部,让Java尽早执行该静态块!
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() {}
}
当考虑它时,这是完全有道理的:)。巨虎!
2020-09-16