获取HeadlessException:未设置X11 DISPLAY变量

 线程“main”中的exceptionjava.awt.HeadlessException:没有设置X11 DISPLAY变量,但是该程序执行了一个需要它的操作。

         at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
        在java.awt.Window。(Window.java:432)
        在java.awt.Frame。(Frame.java:403)
        在javax.swing.JFrame。(JFrame.java:202)
        在DrawGUI。(DrawGUI.java:15)
        在ShapeCreator。(ShapeCreator.java:31)
        在ShapeCreator.main(ShapeCreator.java:138)

这个错误信息是什么意思? 我该如何解决?

我假设你正试图进入一些unix盒子。

确保在PuTTY设置中启用了X11转发。

在此处输入图像描述

这似乎是一个更普遍的SWING / AWT / JDK问题,只有JBOSS安装程序:

下面接受的答案解决了我的问题:

无法使用ubuntu运行java gui程序

(“sudo apt-get install openjdk-6-jdk”)

您的系统没有GUI管理器。 主要发生在Solaris / Linux机器箱中。 如果您在其中使用GUI,请确保安装了GUI管理器,并且您可能还想通过DISPLAY变量进行谷歌搜索。

问题陈述 – 尝试从应用程序初始化java.awt.Component时获取java.awt.HeadlessException,因为tomcat环境没有任何头(终端)。

问题 – Linux虚拟环境是在没有虚拟显示终端的情况下设置的。 试图安装虚拟显示器 – Xvfb,但Xvfb已经被redhat社区取消了。

解决方案 – 使用yum install xorg-x11-drv-vmware.x86_64安装’xorg-x11-drv-vmware.x86_64’并执行startx。 最后使用export DISPLAY =:0.0将显示设置为:0.0然后执行xhost +

我想你正试图从UNIX \ LINUX运行一些实用程序或shell脚本,它有一些GUI。 无论如何

解决方案:你需要的是一个XServer和X11转发function。 我使用XMing(XServer)。 您已经启用了X11转发function。 只需安装它(XMing)并在使用PuTTY创建会话时保持运行。