私はRaspberry Pi 2モデルを使用しており、オペレーティングシステムはDebianです。私はJFrameを開いて単純なJavaスイングプログラムを試しましたが、うまくいきました。
後で私はPiヘッドレス、つまりモニター、キーボード、マウスを接続せずに使用したいと思いました。だから私はイーサネットポートを使って接続しました。 PiにコンパクトなVNCサーバーがインストールされ、デスクトップコンピュータにVNCビューアクライアントがあります。
私のPCでPiのデスクトップを見て操作することができますが、同じJavaスイングプログラムを実行しようとすると、Java Headless例外が発生し、時には認証エラーが発生したときに終了します。オンラインで検索した後、いくつかのエクスポートコマンドを試しましたが、DISPLAY
何の役にも立ちませんでした。
一部のJREまたはオペレーティングシステム固有のパラメータを設定する必要があることを知っています。
以下はスタックです
pi@raspberrypi:~/prog $ sudo java HelloSwing
クライアントに 'main' スレッドの ServerException に接続する権限がありません。 java.awt.AWTError:DISPLAY変数の値として「:1.0」を使用してX11 Windowsサーバーに接続できません。
sun.awt.X11GraphicsEnvironment.initDisplay(ネイティブメソッド)
sun.awt.X11GraphicsEnvironment.access(X11GraphicsEnvironment.java:65)で200ドル
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)から