28
Exception in thread "main" java.awt.HeadlessException:
    No X11 DISPLAY variable was set, but this program performed an operation which requires it.
        at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
        at java.awt.Window.<init>(Window.java:432)
        at java.awt.Frame.<init>(Frame.java:403)
        at javax.swing.JFrame.<init>(JFrame.java:202)
        at DrawGUI.<init>(DrawGUI.java:15)
        at ShapeCreator.<init>(ShapeCreator.java:31)
        at ShapeCreator.main(ShapeCreator.java:138)

What does this error message mean? And how can I solve it?

jww
  • 90,984
  • 81
  • 374
  • 818
Ahsan
  • 699
  • 2
  • 12
  • 18
  • 6
    You have to set the `DISPLAY` environment variable to the address of your X11 server, e.g. `DISPLAY=localhost:0.0`, before starting your Java application. – Raphael Bossek Mar 07 '11 at 11:07
  • 2
    I have the same issue, and my DISPLAY variable *is* correctly set and exported - I can start up an 'xterm' with no issue for instance. Must be something else going on here as well.... – monojohnny Sep 25 '12 at 09:31
  • Great answer @Raphael B to a terribly vague question. Sorted my issue on the Raspberry Pi which wasn't setting DISPLAY when startx was called. – RyanfaeScotland Apr 11 '13 at 14:51

5 Answers5

20

I assume you're trying to tunnel into some unix box.

Make sure X11 forwarding is enabled in your PuTTY settings.

enter image description here

adarshr
  • 59,379
  • 22
  • 134
  • 163
3

This appears to be a more general SWING/AWT/JDK problem that just the JBOSS installer:

The accepted answer below solved the issue for me :

Unable to run java gui programs with ubuntu

("sudo apt-get install openjdk-6-jdk")

Community
  • 1
  • 1
monojohnny
  • 5,710
  • 15
  • 57
  • 82
2

Your system does not have a GUI manager. Happens mostly in Solaris/Linux boxes. If you are using GUI in them make sure that you have a GUI manager installed and you may also want to google through the DISPLAY variable.

Suraj Chandran
  • 23,993
  • 12
  • 60
  • 94
  • 1
    "GUI Manager" is not the word you're after. It's an X11 Server. And barely having it installed is not enough. You'd need it running and you need to have `DISPLAY` set accordingly. – Joachim Sauer Mar 07 '11 at 11:29
1

I think you are trying to run some utility or shell script from UNIX\LINUX which has some GUI. Anyways

SOLUTION: dude all you need is an XServer & X11 forwarding enabled. I use XMing (XServer). You are already enabling X11 forwarding. Just Install it(XMing) and keep it running when you create the session with PuTTY.

Moon
  • 18,752
  • 56
  • 133
  • 197
0

Problem statement – Getting java.awt.HeadlessException while trying to initialize java.awt.Component from the application as the tomcat environment does not have any head(terminal).

Issue – The linux virtual environment was setup without a virtual display terminal. Tried to install virtual display – Xvfb, but Xvfb has been taken off by the redhat community.

Solution – Installed ‘xorg-x11-drv-vmware.x86_64’ using yum install xorg-x11-drv-vmware.x86_64 and executed startx. Finally set the display to :0.0 using export DISPLAY=:0.0 and then executed xhost +

Utpal
  • 9
  • 1