我使用的是 Raspberry Pi 2 型号,操作系统为 Debian。我尝试了一个简单的 java swing 程序,在其上打开 JFrame,效果很好。
后来,我想使用我的 Pi 无头,即不连接显示器、键盘和鼠标。所以我使用以太网端口连接到它。我在 Pi 上安装了紧密的 VNC 服务器,在我的台式电脑上安装了 VNC 查看器客户端。
我能够从我的 PC 查看和操作 Pi 的桌面,但是当我尝试运行相同的 Java swing 程序时,它退出并给出 Java Headless 异常,有时还会出现身份验证错误。在网上搜索后我尝试了一些导出DISPLAY
命令,但没有用。
我知道我需要设置一些与 JRE 或操作系统相关的参数。
下面是堆栈
pi@raspberrypi:~/prog $ sudo java HelloSwing
客户端无权连接到线程“main”中的 ServerException java.awt.AWTError: 无法使用 ':1.0' 作为 DISPLAY 变量的值连接到 X11 窗口服务器。
在 sun.awt.X11GraphicsEnvironment.initDisplay(本机方法)
在 sun.awt.X11GraphicsEnvironment.access 200 美元(X11GraphicsEnvironment.java:65)
在 sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:115)
在 java.security.AccessController.doPrivileged(本机方法)
在 sun.awt.X11GraphicsEnvironment。(X11GraphicsEnvironment.java:74)
在 java.lang.Class.forName0(本机方法)
在 java.lang.Class.forName(Class.java:259)
在 java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:102)
在java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:81)
在 java.awt.Window.initGC(Window.java:475)
在 java.awt.Window.init(Window.java:495)
在java.awt.Window。(Window.java:537)
在 java.awt.Frame.(Frame.java:420)
在 javax.swing.JFrame 处。(JFrame.java:225)
在 HelloSwing.main(HelloSwing.java:6)