- To: Ugo Taddei <taddei@xxxxxxxxxx>
- Subject: Re: Problem with off-screen render
- From: "Valliappa Lakshmanan" <Valliappa.Lakshmanan@xxxxxxxx>
- Date: Fri, 27 Aug 2004 09:57:58 -0500
Thanks, Ugo. I was not aware that you could specify a headless
environment that way.
I think this is the right way to go, because ultimately, I want to
create images
using VisAD within a servlet, and servlets are headless. I added -Djava.awt.headless=true to the invocation of the java VM when I ran my test program.I now get a InitializerException thrown from DisplayImplJ3D.initialize() because
VisADConfig.makeConfig calls getDefaultScreenDevice() which throws a java.awt.HeadlessException. I'm thinking that:(a) if I'm creating an offscreen DisplayImplJ3D, it should not be asking for a default screen device.
or (b) DisplayImplJ3D.initialize() should gracefully handle a headless case. Lak Ugo Taddei wrote:
Hello listeners, I'm not sure if this will help, but here we go:The java.awt.headless property (since JDK 1.4.2) can perhaps be used. I quote:Q: "...I find that when I run my application on Solaris or Linux it needs an Xserver.(...)"A: "There are two possible solutions. For releases prior to 1.4 you can provide a "pseudo X-server" to emulate a display environment One of these X-server emulators is Xvfb, available for download at www.x.org.The preferred solution for release 1.4 and later is to use the new headless AWT toolkit <http://java.sun.com/j2se/1.4.2/docs/guide/awt/AWTChanges.html#headless>. This new feature allows you to use the J2SE API in a server-side Java application without requiring you to have a GUI environment.To specify the headless environment when using Sun Microsystem's reference implementation, run your application with this property:-Djava.awt.headless=true[http://java.sun.com/products/java-media/2D/forDevelopers/java2dfaq.html]Never did this with VisAD, but it might work. Well, it's a nice thing to know anyway.Cheers, Ugo Valliappa Lakshmanan wrote:If I create a JFrame and make it visible, then the off-screenrender works, i.e. if I add these two lines before the getImage(true) call:new javax.swing.JFrame().setVisible(true); then, the program runs to completion. Does VisAD *require* a visible component in order to do an off-screen render? Lak
- Follow-Ups:
- Re: Problem with off-screen render
- From: Bill Hibbard
- Re: Problem with off-screen render
- References:
- Problem with off-screen render
- From: Valliappa Lakshmanan
- Re: Problem with off-screen render
- From: Valliappa Lakshmanan
- Re: Problem with off-screen render
- From: Ugo Taddei
- Problem with off-screen render