“没有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