"No X11 DISPLAY variable" - what does it mean?

I am trying to install a Java application on my Linux machine (Slackware).

I have received the following error, and I do not understand it.

Could you advise me how to approach the problem? Thank you.

Here is what I get: (I see that some X11 DISPLAY variable needs to be set, but what value should I give it and how?)

~$ java -jar gate-5.0-beta1-build3048-installer.jar
- ERROR -


java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(Graphic sEnvironment.java:159)
at java.awt.Window.<init>(Window.java:407)
at java.awt.Frame.<init>(Frame.java:402)
at net.sourceforge.mlf.metouia.borders.MetouiaDotsBuf fer.<init>(MetouiaDotsBuffer.java:105)
at net.sourceforge.mlf.metouia.borders.MetouiaDots.<i nit>(MetouiaDots.java:66)
at net.sourceforge.mlf.metouia.borders.MetouiaToolBar Border.<init>(MetouiaToolBarBorder.java:49)
at net.sourceforge.mlf.metouia.MetouiaLookAndFeel.ini tComponentDefaults(MetouiaLookAndFeel.java:241)
at javax.swing.plaf.basic.BasicLookAndFeel.getDefault s(BasicLookAndFeel.java:130)
at javax.swing.plaf.metal.MetalLookAndFeel.getDefault s(MetalLookAndFeel.java:1591)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:537)
at javax.swing.UIManager.setLookAndFeel(UIManager.jav a:581)
at com.izforge.izpack.installer.GUIInstaller.loadLook AndFeel(GUIInstaller.java:373)
at com.izforge.izpack.installer.GUIInstaller.<init>(G UIInstaller.java:116)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Construc tor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:30
at com.izforge.izpack.installer.Installer.main(Instal ler.java:62)
603084 次浏览

如果你在主屏幕上,那么

export DISPLAY=:0.0

or if you're using csh or tcsh

setenv DISPLAY :0.0

在运行你的应用程序之前。

事实上,我很惊讶它不是自动设置的。您是否尝试从非图形终端启动此应用程序?如果没有,是否修改了默认的。简介。登入。巴希尔或者。心理咨询中心?

请注意,将 DISPLAY 设置为: 0.0预先假定您正坐在主显示器上,正如我所说的,或者至少主显示器已登录到您的用户 ID。如果它没有登录,或者它是一个不同的 userid,这将会失败。

如果您是从另一台机器进来的,并且您正处于该机器的主显示器上,它正在运行 X,那么您可以使用“ ssh-X hostname”连接到该主机,然后 ssh 将把 X 显示转发回来。Ssh 还将确保 DISPLAY 环境变量设置正确(前提是它没有被我上面提到的各种 dot 文件弄乱)。在“ ssh-X”会话中,DISPLAY 环境变量将有一个类似于“ localhost: 11.0”的值,这个值将指向 ssh 正在隧道中连接到本地机器的套接字。

Are you running this from within an X11 environment? You can use a terminal window, but it has to be within X (either after a graphical login, or by running startx).

如果您已经在一个图形化环境中,请尝试导出 DISPLAY = : 0用于 bash (bash、 sh 等)或 setenv DISPLAY: 0用于基于 C shell 的 shell (csh、 tcsh 等)

如果您已经通过 SSH 从另一台机器连接,那么可以使用-X 选项在您所在的机器上显示图形界面(假设有一个 X 服务器在那里运行(比如 xming for windows,以及您的标准 Linux X 服务器)。

不要忘记在您的“ home”显示器上执行“ host +”,当您 ssh 到这台机器时,您正在执行“ ssh-x hostname”

我在 Ubuntu 14.04.01中遇到过同样的问题,当我试图安装 JDK 8和 Netbeans 时,如果我在 Byobu 终端中启动脚本(也许在屏幕上也会发生同样的情况)。

Just exit Byobu and (in a graphical terminal) run the script.

Initial Check.

1)当您将 DISPLAY 导出到其他机器时,请确保您在该机器上输入了命令 xhost +。这个命令允许其他机器在这台机器上导出它们的显示。可能有安全限制,只是知道它。需要检查 ssh -X MachineIP是否需要 xhost +

2)有时候 JCONSOLE不会显示所有的进程,因为这些 JVM 进程可能与不同的用户一起运行,而您正在向另一个用户导出 DISPLAY。所以最好跟着 CD_DIR>sudo ./jconsole

3)在 WAS (WEBSPHere)中; jsole 不能连接它的 java 服务器进程,这个时间直到链接,然后尝试连接它。这招对我很管用。可能这个页面正在初始化一些变量,以使 jsole 能够连接到该服务器。

WAS 控制台 > 应用服务器 > server1 > 进程定义 > Java 虚拟机


我在 AIX (只有命令行接口可用,没有 DISPLAY UI)机器上遇到过同样的问题。我通过安装解决了这个问题

用于 Windows 的 NX 客户端

步骤1: 通过那台 Windows 机器,我连接到可以使用 GUI 控制台的 unix 框。
步骤2: 从 UNIX 机器到 AIX 机器的 SSH。
步骤3: 将 DISPLAY 设置为“ export DISPLAY = UNIXMACHINE: NXClientPORTConnectedMentionedOnTitle”
步骤4: 现在如果我们启动任何需要 DISPLAY 的程序,它将在这个 UNIX 机器上启动。 < BR >

VNC

如果在可以显示的 UNIX 框上安装了 VNC,则不需要 Windows 和 NX Client。 Step 1: Use VNC to connect with Unix box where GUI console is available.
步骤2: 从 UNIX 机器到 AIX 机器的 SSH。
Step 3: set DISPLAY like "export DISPLAY=UNIXMACHINE:VNCPORT"
步骤4: 现在如果我们启动任何需要 DISPLAY 的程序,它将在这个 UNIX 机器上启动。 < BR >

还有

步骤1: 从 UNIX 机器到 AIX 机器的 SSH。
步骤2: 将 DISPLAY 设置为“ export DISPLAY = UNIXMACHINE: VNCPORT”
步骤3: 现在如果我们启动任何需要 DISPLAY 的程序,它将在这个 UNIX 机器上启动。

One more thing that might be the problem in a case similar to described - X is not forwarded and $DISPLAY is not set when 'xauth' program is not installed on the remote side. You can see it searches for it when you run "ssh -Xv ip_address", and, if not found, fails, which's not seen unless you turn on verbose mode (a fail IMO). You can usually find 'xauth' in a package with the same name.

非常容易,有同样的问题,然后我所做的是下载和安装一个应用程序,将有助于显示,然后修复错误。

下载这个应用程序 xming:

Http://sourceforge.net/project/downloading.php ?

Install, then use settings on this link:

http://www.geo.mtu.edu/geoschem/docs/putty_install.html or follow this steps:

安装/配置 PuTTy 和 Xming

一旦 PuTTy 和 Xming 被下载到 PC 上,按照它们各自的说明进行安装。

配置 Xming

安装 Xming 之后,运行名为“ XLaunch”的应用程序,并验证设置是否如下所示:

  • 在“显示设置”窗口中选择“默认条目”,然后单击“下一步”
  • 单击“会话类型”窗口的下一步。
  • 单击“其他参数”窗口的下一步(注意剪贴板复选框为 true)
  • 保存配置并单击完成。

配置 PuTTY

安装 PuTTy 后,双击桌面上的 PuTTy 图标并配置如下:

This shows creating a login profile then saving it.

  • 在 ssh-> X11上,单击复选框以启用 X11转发。
  • 在 X 上显示位置文本框,键入 localhost: 0.0

保存配置文件,然后远程连接到服务器进行测试。

干杯! ! !

你必须在你的 PuTTy 启用 X11正在转发

这样做打开 PuTTy,转到 Connection = > SSH = > Tunes 连接 = > SSH = > 隧道并检查标记 启用 X11转发

也 sudo 到服务器和导出下面的变量这里的 IP 是您的本地机器的 IP

export DISPLAY=10.75.75.75:0.0

enter image description here

对于那些试图让 X Window 应用程序从 Linux 的 Windows 工作的人:

对我来说,有效的方法是在我的 windows 机器上设置 xming 服务器,在我连接到 linux 主机时设置 X11转发选项,然后输入带有显示端口的 windows IP 地址,然后输入带有 windows IP 地址的 display 变量: 0.0

不要忘记将 linux hosts IP 地址添加到 X0.hosts 文件中,以确保 xming 服务器接受来自该主机的流量。我花了好久才想明白。

有很多方法可以做到这一点。我做了一些以下方便我和总是工作良好。

  1. 在远程服务器上,确保安装 xorg-x11-xauth、 xorg-x11-font-utils、 xorg-x11-fonts。
  2. Run the Xming Server on you local desktop
  3. On putty, before ssh to the server, enable the X11 forwarding and set the display location to localhost:0.0
  4. 在服务器上,生成. Xauthority 文件,注意 DISPLAY 变量已经设置。

    $Xauth 名单

    $ xauth add

要测试它,输入 xlock 或 xeyes

Note: To switch user, copy the .Xauthority file to the home directory of the respective user and also export the DISPLAY variable from that user.

设置显示模式是好的,并确保 apache Jmeter 从您的 USER 模式启动,不要在 ROOT 用户中运行。

$ cd /home/USER/apache-jmeter-5.5/
$ ./jmeter