通过Linux终端运行Java GUI应用程序

Tyl*_*eat 12 java linux bash ubuntu user-interface

我在Ubuntu尝试通过终端运行Java GUI应用程序.当我尝试运行它时,我收到了HeadlessException.下面是堆栈跟踪:

Exception in thread "AWT-EventQueue-0" java.awt.HeadlessException
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:173)
    at java.awt.Window.<init>(Window.java:437)
    at java.awt.Frame.<init>(Frame.java:419)
    at java.awt.Frame.<init>(Frame.java:384)
    at javax.swing.JFrame.<init>(JFrame.java:174)
    at gui.ImageViewer.<init>(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)
Run Code Online (Sandbox Code Playgroud)

export DISPLAY=:0.0在运行应用程序之前尝试过,但这没有任何效果.你如何通过Bash运行GUI应用程序?

Den*_*kiy 28

我猜你只安装了default-jre-headless包.检查一下default-jre.

  • 请注意:在Fedora / RedHat发行版中,此软件包称为“ java-NNN-openjdk”(其中NNN是版本号) (2认同)

AkD*_*AkD 7

我有这个例外.我尝试将无头设置设置为false,这对我有用:

export JAVA_TOOL_OPTIONS='-Djava.awt.headless=false'
Run Code Online (Sandbox Code Playgroud)