JDK 7/8 falling back to headless toolkit in ssh login session

Anthony Petrov anthony.petrov at oracle.com
Mon May 27 07:51:06 PDT 2013


Hi Phil,

We explicitly decided to fall back to the headless mode when running 
over ssh. Please see this message:

http://mail.openjdk.java.net/pipermail/macosx-port-dev/2011-December/001883.html

--
best regards,
Anthony

On 05/24/13 23:16, Phil Race wrote:
> When we ssh into an OS X system as the currently logged in user, we
> would like to run automated tests that display on the screen. However
> I found that I need to explicitly tell it the toolkit to use to get this
> to work
> "AWT_TOOLKIT=CToolkit java ..."
>
> else it falls back into a path where it selects the headless toolkit
> which then complains when we try to create a window :
>
> java -jar SwingSet2.jar
> Exception in thread "main" java.awt.HeadlessException:
> No X11 DISPLAY variable was set, but this program performed an operation
> which requires it.
> at
> sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:77)
>
> at SwingSet2.main(SwingSet2.java:222)
> ....
> The X11 message is a bit confusing but is basically the fallback code
> assuming
> that the headful toolkit would have been X11.
>
> And SwingSet2 uses the SplashScreen API which displays an image before
> AWT starts running, so we get the oddity that you see the splash screen
> displayed
> for a moment before AWT decides that can't have been possible and shuts
> down :-)
>
> The ultimate root of the problem is a function called "isInAquaSession"
> which uses
> The OSX GetSessionInfo call. JFK checks the returned bit flag for
> sessionHasGraphicsAccessFlag
> which is however "clear", even though as far as I can tell, it should be
> "set".
> SwingSet2 seems to work just fine when run as
> AWT_TOOLKIT=CToolkit java -jar SwingSet2.jar
> So it appears GetSessionInfo is unreliable, or maybe too picky over
> something
> that doesn't matter ?
>
> So are we required to forever use the workaround above, or is there
> something
> we can do to get the right answer ?
>
> -phil.
>


More information about the macosx-port-dev mailing list