I think I found it!
I was working with a main() in a class which statically loads differents part of JFreeChart in Constants (and other static code).
Moving the static loading block to the top of the class solved my problem.
so this doesnt work:
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() {}
}
Let java execute the static block as early as possible by moving it to the top of the class!
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() {}
}
When thinking about it this makes perfectly sense :). Juhu!