質問

私はヘッドレスシステム上で実行したい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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top