Just a quick note to self:
After looking at the JDK source code today, we found that even when setting
-Djava.awt.headless=true, if a script executes with the
DISPLAY environment variable set, the AWT graphics environment will still use a GraphicsEnvironment representing that
A major problem with this is if the shell that launched the script that started the java process ever executes, the GraphicsEnvironment reflecting the DISPLAY will be removed and any Object instances reflecting that environment would be invalidated or Classes once available will no longer be available. resulting in a NoClassDefFoundException.
Bottom line: on Linux, if setting
-Djava.awt.headless=true in a script, ensure that you
unset DISPLAY in the script before starting the
java process. It will save some headaches in debugging.