7

AWT と Swing 機能を使用してデスクトップにアニメーション出力を書き込むコードを使用しています。2D グラフィックスを使用して描画し、テキストをフォントでレンダリングします。

このコードは、Java Media Framework を使用して、アニメーションをムービー ファイルに保存できます。

Web UI を操作するために、このコードを純粋なサーバー側環境に移植したいと考えています。描画コードは、サーブレット コンテナー内で実行することも、コマンド ライン プログラムとして外部で実行することもできます。(または、サーブレット コンテナーを使用せずに、コマンド ラインから Java Web サーバーを実行する新しい方法を使用することもできます。)

サーバーで X Window System を起動せずに、AWT および Swing 描画機能を使用できますか?

4

1 に答える 1

14

Java SE プラットフォームでのヘッドレス モードの使用に関する記事では、このようなアプリケーションに課される制限について概説しています。

具体的な例として、JFreeChartデスクトップとサーブレットの両方のコンテキストで広く使用されているグラフィック プログラムがあります。後者の場合、いくつかのいずれかをChartUtils使用して、レンダリングされたコンテンツをヘッドレス環境でストリーミングできます。

または、推奨されていませんが、Java Web Startを使用して既存の Swing アプリケーションをデプロイすることを検討してください。たとえば、こちらJFreeChartのデモをご覧ください。

補遺: この Oracle フォーラムスレッドは、Java Media Framework が実際に をスローできることを示唆していますHeadlessException。推奨される回避策は、特定のシステム プロパティ値を指定することです。

-Dawt.toolkit=sun.awt.HeadlessToolkit

このJFreeChartフォーラムスレッドは、モードが利用できない場合の代替手段として、Xvfbまたは提案しています。vncheadless

于 2012-12-21T07:19:46.950 に答える