web-dev-qa-db-ja.com

Open Java SSHからVNCディスプレイへのプログラム

LXDEとTightVNCserverがインストールされたUbuntu 12.04システムがあり、ポート:1(SSHを介してトンネル化されていない)とアクティブなSSH接続でセッションを実行している場合、SSHを使用してアクティブなプログラムを開始するにはどうすればよいですか利用可能なtightVNCセッションを使用するディスプレイ?

SSHを使用してJavaファイルを開始したかったが、これは通常vncセッション内で開始すると正常に開始するが、エラーが発生する:

xxx@yyy:~# Java zzz
Exception in thread "main" Java.lang.ExceptionInInitializerError
Caused by: Java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
        at Sun.awt.HeadlessToolkit.getScreenSize(HeadlessToolkit.Java:282)
        at zzz.<clinit>(zzz.Java:35)

言い換えると、プログラムを起動し、VNCクライアントビューアーセッションを使用せずに、開いているVNCセッションのウィンドウを使用したいのですが、これを実行できますか?

(ディスプレイを必要とするプログラムはそのように反応するだろうと思うので、Javaの質問ではなく、ssh/vncの質問です)

1
N_Dev

DISPLAY変数をVNCセッションのXサーバーに設定してみてください。

DISPLAY=:1 Java xxx
2
muru

X11転送を有効にする必要があります。これにより、独自のX11サーバーに転送されます(そのため、SSHを送信するクライアントで実行中のX11サーバーが必要です)。

これを行うには、-XをSSHコマンドに追加します。例:ssh -X user@server

次に、$ DISPLAY変数が正しいディスプレイに設定されていることを確認します。 echo $DISPLAYでこれを確認してください

達成しようとしていることが、SSHを介してX11サーバー上の開いているウィンドウにアクセスしている場合は、これを見てみることをお勧めします。 http://www.wensley.org.uk/x =

「画面」に似た動作をX11アプリケーションで実現する方法を説明します。

2
Tobias