Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

creating graphic object on a headless machine

10 views
Skip to first unread message

Bruce Ritchie

unread,
Nov 9, 2000, 3:00:00 AM11/9/00
to
I'm trying to figure out how to create dynamic images on a headless sun
machine using java without running into the problem that java seems to need
a graphics card attached and running to generate graphic objects.

A snippet of my code is below, and it works find on a machine with a head
(such as my desktop), however I continously get errors on a headless
machine.

The error I seem to be getting is (with a display exported, which isn't what
I can do in production):

Sat Oct 14 15:35:48 EDT 2000: Running servlet
{ (Running servlet) java.lang.NoClassDefFoundError:
sun/awt/X11GraphicsEnvironment
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:125)
at
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment
.java:63)
at
java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1009)

without the display exported:

Sat Oct 14 14:42:15 EDT 2000: Running servlet
{ (Running servlet) java.lang.InternalError: Can't connect to X11 window
server using :0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at <Unloaded Method>
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:125)
at
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment
.java:63)
at <Unloaded Method>
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:125)
at java.awt.Toolkit$2.run(Toolkit.java:499)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:492)
at java.awt.Window.getToolkit(Window.java:401)
at java.awt.Frame.addNotify(Frame.java:274)

Any help appreciated.

<snip>
try {
frame = new Frame();
frame.addNotify();

Image image = frame.createImage(width,height);
g = image.getGraphics();

g.setColor(new Color(bg_color_red, bg_color_green,
bg_color_blue));
g.fillRect(0, 0, width, height);

g.setColor(new Color(color_red, color_green, color_blue));
g.setFont(new Font(font, Font.BOLD, fontSize));
g.drawString(rangeTxt, base_x, base_y);

GifEncoder encoder = new GifEncoder(image, out);
encoder.encode();

}
finally {
if (g != null) {
g.dispose();
}
if (frame != null ) {
frame.removeNotify();
}
}
</snip>

0 new messages