Je travaillais avec un main()
dans une classe qui charge statiquement différentes parties de JFreeChart Constantes (et d'autres code statique).
Le déplacement du bloc de chargement statique vers le haut de la classe a résolu mon problème.
Cela ne fonctionne pas:
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 est d'exécuter le bloc statique le plus tôt possible en le déplaçant vers le haut de la classe!
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() {}
}
Quand on pense à ce sujet cela a un sens parfaitement :). Juhu!
Vous pouvez également être intéressé par http://en.wikipedia.org/wiki/Xvfb. – lexicore