Alan Bateman said the following on 04/20/11 21:01:
David Holmes wrote:
libmawt.so is known to the VM. We use it with Embedded to detect if we
are currently running our headless JRE or not: if xawt/libmawt.so (or
motif21/libxawt.so) isn't present then it is an Embedded headless JRE.
So any change here would have to be coordinated with a VM change.
Glad I was subscribing to this list :)
I'm glad too. Do you think this could be done a different way? In
java.awt.GraphicsEnvironment I see that isHeadless consults
getHeadlessProperty to determine if we are headless and one of the
things it checks is whether the DISPLAY variable is set. If this
additionally checked that libxawt.so is available then would it avoid
needing code in the VM?
It's a different definition of "headless". The JDK can have headful
capabilities but operate in headless-mode - all the libs are still
present. The SE-Embedded headless JRE has had all the headful libs
stripped out. We use the absence of the libs to recognize that this is a
headless-JRE and use that to set the java.awt.headless property so that
the Java libs act in headless-mode. So the VM drives this.
David