“无 X11 显示变量” - 这是什么意思?

2022-08-31 09:10:32

我正在尝试在我的Linux机器(Slackware)上安装Java应用程序。

我收到了以下错误,但我不明白。

你能告诉我如何处理这个问题吗?谢谢。

以下是我得到的:(我看到需要设置一些X11 DISPLAY变量,但是我应该给它什么值以及如何设置?

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

答案 1

如果您在主显示屏上,则

export DISPLAY=:0.0

或者如果您使用的是 csh 或 tcsh

setenv DISPLAY :0.0

在运行应用之前。

实际上,我很惊讶它没有自动设置。您是否正在尝试从非图形终端启动此应用程序?如果没有,您是否修改了默认的 .profile、.login、.bashrc 或 .cshrc?

请注意,将 DISPLAY 设置为 :0.0 会预先假定您坐在主显示器上,正如我所说,或者至少主显示器已登录到您的用户 ID。如果未登录,或者它是其他用户标识,则此操作将失败。

如果您从另一台计算机进入,并且您位于该计算机的主显示器上,并且它正在运行X,则可以使用“ssh -X主机名”连接到该主机,ssh会将X显示器转发回去。ssh 还将确保正确设置 DISPLAY 环境变量(前提是它不会在我上面提到的各种点文件中被弄乱)。在“ssh -X”会话中,DISPLAY 环境变量将具有类似于“localhost:11.0”的值,该值将指向 ssh 正在通过隧道连接到本地框的套接字。


答案 2

您是否在 X11 环境中运行此服务器?您可以使用终端窗口,但它必须在 X 内(在图形登录之后,或者通过运行 startx)。

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

如果您通过 SSH 从另一台计算机进行连接,则可以使用 -X 选项在您所在的计算机上显示图形界面(前提是那里有一个 X 服务器(例如 windows 的 xming 和您的标准 Linux X 服务器)。