java - "No X11 DISPLAY variable"- 这是什么意思?

标签 java linux variables x11 headless

我正在尝试在我的 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)

最佳答案

如果您在主显示屏上,则

export DISPLAY=:0.0

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

setenv DISPLAY :0.0

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

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

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

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

关于java - "No X11 DISPLAY variable"- 这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39596142/

相关文章:

bash - 为什么这种花括号和双引号的组合在 bash 中不起作用?

java - .txt 文件到数组使用 Java

java - 将for循环转换为递归方法java

java - 无法使用 maven 插件在 intellij 中导入 okhttp 项目

c - gdb:仅当调用函数不等于某个值时才会有条件地中断函数

php - 在新页面上将变量从 JavaScript 传递到 PHP

java - Mapreduce 程序的输入数据

linux - 如何通过 SSH 在 Windows 中挂载远程 Linux 文件夹?

linux - 如何使用 'cp'命令排除特定目录?

arrays - 数组在代码结束后保留​​值