“没有X11 DISPLAYvariables” – 这是什么意思?

我想在我的Linux机器上安装一个程序(一个Java应用程序)(我正在使用Slackware)。 我收到以下错误,我不明白。 你能告诉我如何解决这个问题吗? 我不确定这是否是一个我可以在这里问的问题,因为这不是一个编程问题,但是如果你回复,我将不胜感激。 谢谢。

这里是我得到的:(我看到一些X11显示variables需要设置,但我应该给它什么样的价值?)

~$ 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) 

如果你在主显示屏上,那么

 export DISPLAY=:0.0 

或者如果你使用csh或tcsh

 setenv DISPLAY :0.0 

运行你的应用程序之前

其实,我很惊讶它不是自动设置的。 你是否试图从一个非graphicsterminal启动这个应用程序? 如果没有,您是否修改了默认的.profile,.login,.bashrc或.cshrc?

请注意,将DISPLAY设置为0.0预先假定您坐在主显示屏上,正如我所说,或者至less主显示屏已login到您的用户ID。 如果它没有login,或者是不同的用户标识,则将失败。

如果你是从另外一台机器进来的,而且你在这个机器的主显示器上运行X,那么你可以使用“ssh -X hostname”连接到这台主机,而ssh会把X显示返回。 ssh也会确保DISPLAY环境variables的设置是正确的(假设它不是在上面提到的各种点文件中被搞混了)。 在“ssh -X”会话中,DISPLAY环境variables将具有类似“localhost:11.0”的值,该值将指向ssh通向本地框的套接字。

你是从X11环境中运行的吗? 您可以使用terminal窗口,但必须在X之内(在graphicslogin之后,或者运行startx)。

如果你已经在一个graphics环境中,对于基于C shell的shell(csh,tcsh等),尝试导出DISPLAY =:0(如bash,sh等)或者setenv DISPLAY:0。

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

在类似于描述的情况下,还有一件事可能是问题 – 当远程端没有安装“xauth”程序时,X不会被转发,$ DISPLAY也不会被设置。 当你运行“ssh -Xv ip_address”时,你可以看到它search它,如果没有find,就会失败,除非你打开详细模式(一个失败的IMO),否则这是不可见的。 你通常可以在同名的包中find'xauth'。

您必须在您的电脑上启用X11转发

打开PuTTy,进入Connection => SSH => Tunnels ,勾选Enable X11转发

另外sudo服务器和输出下面的variables在这里IP是您的本地机器的IP

 export DISPLAY=10.75.75.75:0.0 

在这里输入图像描述

很容易,有这个相同的问题,那么我所做的就是下载并安装一个应用程序,这将有助于显示,然后修复错误。

下载这个应用程序xming:

http://sourceforge.net/project/downloading.php

安装,然后使用此链接上的设置:

http://www.geo.mtu.edu/geoschem/docs/putty_install.html或按照下列步骤操作:;

安装/configurationPuTTY和Xming

一旦PuTTy和Xming下载到电脑,按照各自的说明进行安装。

configurationXming

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

  • 在“显示设置”窗口中select默认条目,点击下一步
  • 单击Session Type窗口中的下一个。
  • 点击其他参数窗口(注意剪贴板checkbox为真)
  • 保存configuration并点击完成。

configurationPuTTy

安装PuTTy后,双击桌面上的PuTTY图标并进行如下configuration:

这显示创build一个loginconfiguration文件,然后保存它。

  • 在ssh – > X11上,点击checkbox启用X11转发。
  • 在X显示位置文本框中,键入localhost:0.0

保存configuration文件然后远程连接到服务器来testing。

干杯!!!

我在Ubuntu 14.04.01中遇到了同样的问题,当我试图安装JDK 8和Netbeans时,如果我在一个Byobuterminal中启动脚本(也许屏幕发生相同)。

只需退出Byobu并(在graphicsterminal中)运行该脚本。

初始检查。

1)将DISPLAY导出到其他机器时,确保在该机器上input了命令xhost + 。 这个命令允许其他机器在这台机器上输出他们的DISPLAY。 可能有安全约束,只知道它。 需要检查ssh -X MachineIP将不需要xhost +

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

3)在WAS(WEBSPHERE); jconsole将无法连接它的java服务器进程,那时候只要去链接,然后尝试连接它。 这对我有效。 可能是这个页面正在初始化一些variables,使jconsole连接到该服务器。

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


我遇到了与AIX相同的问题(其中命令行界面只可用,没有DISPLAY UI)的机器。 我通过安装解决

用于Windows的NX客户端

第1步:通过该Windows机器,我连接了可用GUI控制台的unix框。
步骤2:从该UNIX框到SSH框。
第三步:设置DISPLAY,如“export DISPLAY = UNIXMACHINE:NXClientPORTConnectedMentionedOnTitle”
第四步:现在如果我们启动任何需要DISPLAY的程序; 它将在这个UNIX框上启动。

VNC

如果您在显示器可用的UNIX框上安装了VNC, 那么Windows和NX客户端不是必需的。 步骤1:使用VNC连接Unix控制台可用的Unix机器。
步骤2:从该UNIX框到SSH框。
第3步:将DISPLAY设置为“export DISPLAY = UNIXMACHINE:VNCPORT”
第四步:现在如果我们启动任何需要DISPLAY的程序; 它将在这个UNIX框上启动。

其他

步骤1:从该UNIX框到SSH框。
第二步:设置DISPLAY,如“export DISPLAY = UNIXMACHINE:VNCPORT”
第三步:现在如果我们启动任何需要DISPLAY的程序, 它将在这个UNIX框上启动。

对于那些试图从Linux操作系统中获取X Window应用程序的人来说:

什么对我来说就是在我的Windows机器上设置xming服务器,在连接到linux主机时,在putty中设置X11转发选项,并将显示端口与我的Windows IP地址,然后显示variables与我的Windows IP地址:0.0

不要忘记将Linux主机IP地址添加到X0.hosts文件,以确保xming服务器接受来自该主机的stream量。 花了我一段时间来弄清楚。

不要忘记在你的“home”显示机器上执行“host +”,当你使用ssh来执行“ssh -x hostname”

-Tee