<AWT Dev> RFR: 8025673: Disable X11 AWT toolkit

David DeHaven david.dehaven at oracle.com
Wed Oct 23 10:00:24 PDT 2013

>> The only reason I left it in there was for the AWT_TOOLKIT environment variable support. Right now if you set AWT_TOOLKIT to HToolkit it will start in headless mode regardless of what isAquaSession() returns. If we don't care about that then I'll happily remove it (I'm asking because I don't know if it's used or not).
>> For example:
>> $ AWT_TOOLKIT=HToolkit ./build/macosx-x86_64-normal-server-release/jdk/bin/java -jar ~/Desktop/SwingSet2.jar
>> 2013-10-23 09:26:21.726 java[23276:707] [JRSAppKitAWT markAppIsDaemon]: Process manager already initialized: can't fully enable headless mode.
>> Exception in thread "main" java.awt.HeadlessException
>> 	at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:77)
>> 	at SwingSet2.main(SwingSet2.java:224)
>> But it's *only* implemented on Mac OS X so it doesn't appear to be all that useful unless we want it implemented for other platforms, which would be a whole separate issue.
> There's a documented way to choose a toolkit: it is the awt.toolkit system property.
> We don't care about AWT_TOOLKIT anymore. It was only relevant at the time of 1.5 and 1.6 to allow users to switch between MToolkit and XToolkit. Now that MToolkit is gone, this environment variable isn't needed.

Ah, ok. That makes sense. In that case we can nuke most of what I just put back :)

>> Another option (I think would make everyone happy) would be to add a native method to LWCToolkit.{java,m} that implements isAquaSession and returns a boolean. Call this new method in the static initializer and use it's return value to set java.awt.headless before calling initIDs. This will still be done early enough that Toolkit.java will end up wrapping LWCToolkit in a HeadlessToolkit, since it first initializes the wrapped toolkit *then* checks to see if it needs to be wrapped. Then all that code in java_props* and System.c could be removed.
> I like this idea. But it needs testing.

Cool, I'll poke at it when I get a chance.


More information about the hotspot-dev mailing list