1

ヘッドレスサーバーで実行しているアプリケーションがあります。これはWebアプリケーションですが、特定の機能(デバッグ)では、スイングベースのアプリケーションを実行します。サーバーはヘッドレスであるため(私はすでに-Djava.awt.headless = trueを設定しています)、サーバーの起動時に例外をスローします...

Xvfbをインストールしようとしましたが、XvfbにはGUI出力がなく、出力が表示されなかったため、問題は解決しませんでした。

そのため、swingアプリケーションを表示してデバッグするために、そのサーバーの出力を別のサーバー(たとえば、私のラップトップ)にリダイレクト/転送したいと思います。

DISPLAY変数などを使用してそれを実現する方法はありますか?

ありがとう。

4

3 に答える 3

1

ラップトップで X サーバーを実行している場合、SSH で X-Forwarding を有効にしてサーバーに SSH で接続できます。これにより、DISPLAY 変数が :10.0 の行に自動的に設定され、GUI を使用してアプリケーションを実行できます。ローカル X サーバーにエクスポートされます。

それ以外の場合、手動で DISPLAY を設定したい場合は、サーバーが x-server ポートで直接 TCP 接続を使用してラップトップに到達できることを確認する必要があります。

于 2011-11-30T16:31:17.013 に答える
1

次のいずれかを実行できます

  1. Xvnc を実行し、VNC クライアントを使用して接続します
  2. Xvfb を x11vnc と一緒に実行し、VNC クライアントを使用して接続します (これは上記とは異なりますが、最終結果は同じです。何らかの理由で既に Xvfb を実行している場合にのみ役立ちます)。
  3. ファベッティの回答に従って、X11セッションのssh転送(または直接TCP接続)を使用します

オプション 1 または 2 は、ラップトップに Windows があり、X11 サーバーを実行したくない場合に便利です。その後、Windows ネイティブの VNC クライアントを使用できます。

VNC の代わりに RDP を使用することもできます (X11 側では X11rdp または xrdp、Windows 側では RDP クライアント)。これにより、リフレッシュ レートが速くなるはずですが、X11 側でセットアップするのは難しいと思われます (個人的には行っていません)。OTOH Windows には RDP クライアントが組み込まれているため、Windows 側に何もインストールする必要さえありません。

ラップトップに X11 がある場合は、オプション 3 を使用する方がはるかに簡単です。

于 2011-11-30T16:47:45.503 に答える
1

別のユーザーの回答にコメントするのに十分な「担当者」がいないため、私の投稿は「favoretti」の良い回答を補強することを目的としています。

Windows PC を実行している場合は、cygwin unix サブシステムをインストールし、x-windows と ssh をインストールします。OSX スタートアップ X11 または Mavericks 以降を使用している場合は、xQuartz をインストールします。

次に、前述のように、ターゲット (ヘッドレス) リモート サーバーに SSH で接続し、-X フラグを指定して、X トラフィックがネットワーク経由で戻ってくることを許可します。

 ssh -l <user> -X -v <host>

コマンドを呼び出す必要がある場合とない場合があります

xhost + 

X トラフィックがマシンに戻ることを許可します。

于 2014-05-23T19:04:05.817 に答える