質問
私はヘッドレスシステム上で実行したいAWTを使用してJavaプログラムを持っています。プログラムの表示は、表示の統計以外何もしません。プログラムが終了すると、それが終了します。ディスプレイには、ユーザとの対話はありません。プログラムは、私は私のビルドシステムで使用出力ファイルを作成します。
X11ディスプレイに構成なしで実行するJavaプログラムを取得する方法はありますか?私は何を表示しようとせずにプログラムを実行するには、Javaを強制することはできますか?私は(それだけの.jarファイルである)ソースコードへのアクセスを持っていないので、私はソースに変更を加えることはできません。
私はこの仕事を得ることができる方法上の任意の考え?
解決
ここでの根本的な疑問は、XサーバなしでJavaアプリケーションを実行する方法です。 「偽」Xサーバを提供することが唯一の選択肢です。
:Javaの1.4とアップでは、次の操作を行うことができますjava -Djava.awt.headless=true
これは、AWTを使用するアプリケーションでもXサーバなしでヘッドレスシステム上で実行することができます。
他のヒント
Xvfbのは、あなたが求めるものを行うことができます。私はそれを自分自身を使用しますが、ここではウィキペディアへのリンクですいませんでした: http://en.wikipedia.org /ウィキ/ Xvfbのの
あなたはVNCサーバを使用することができます。
vncserver :1001
export DISPLAY=localhost:1001
java..
追加の利点は、あなたが実際にGUIを表示できるということです 「念のために」VNCサーバを使用して
また、低解像度と色深度でXvncのを実行することができます。
伝統的な方法は、ヘッドレスを行くためにJavaを伝えることです。
あなたはいつもそれが実際に何を見るためにEclipseの瓶や使用JAD + jadclipseをマウントし、あなたがする必要がある場合はおそらく、クラスパス内での「前」に別のクラスファイルを置くことによってクラスをオーバーライドできることに注意してくださいます。
プログラムが2Dでを使用している場合、関連するかもしれない施設は、新しいJavaのバージョンはより速くレンダリングするためにX11サーバに最適化を使用することです。これだけで、あなたのグラフィックス処理に高性能グラフィックスカードに接続されているX11サーバを捧げる理由かもしれません。
私は、彼らドン、過去に大きな成功を収めて PJA のライブラリを使用しました「がtはもはや維持されているように見えるが、その後、再び、ただ単に実行したい...
私は、コマンドライン引数でOpenJFXにヘッドレスモードを取得することができた。
-Dglass.platform=Monocle -Dmonocle.platform=Headless -Dprism.order=sw