title: Running Java GUI applications through a Linux terminal
body: <p>I'm on Ubuntu trying to run a Java GUI application through the terminal. I'm getting a HeadlessException when I try to run it. Below is the stack trace:</p>
  
  <pre><code>Exception in thread "AWT-EventQueue-0" java.awt.HeadlessException
      at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:173)
      at java.awt.Window.&lt;init&gt;(Window.java:437)
      at java.awt.Frame.&lt;init&gt;(Frame.java:419)
      at java.awt.Frame.&lt;init&gt;(Frame.java:384)
      at javax.swing.JFrame.&lt;init&gt;(JFrame.java:174)
      at gui.ImageViewer.&lt;init&gt;(ImageViewer.java:34)
      at displayrunner.DisplayRunner$1.run(DisplayRunner.java:15)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:647)
      at java.awt.EventQueue.access$000(EventQueue.java:96)
      at java.awt.EventQueue$1.run(EventQueue.java:608)
      at java.awt.EventQueue$1.run(EventQueue.java:606)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:617)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
  </code></pre>
  
  <p>I tried <code>export DISPLAY=:0.0</code> before running the application, but that had no effect. How do you run a GUI application through Bash?</p>