2012-12-21 18 views
6

我正在使用一些使用AWT和Swing功能將動畫輸出寫入桌面的代碼。它繪製使用2D圖形並以字體呈現文本。移植使用AWT和Swing繪製電影到服務器端的Java應用程序

此代碼可以使用Java Media Framework將動畫保存爲電影文件。

我想將此代碼移植到純服務器端環境中,以使用Web UI。繪圖代碼可以在servlet容器內運行,也可以作爲命令行程序運行。 (或者我可以選擇不使用servlet容器,而是使用從命令行運行Java Web服務器的更新方法。)

我可以在服務器上不使用X Window系統的情況下使用AWT和Swing繪圖功能嗎?

+0

你的意思是你想在不打開Java容器的情況下運行代碼? –

+0

我想在不打開X Window系統或GUI的情況下運行代碼。我可以讓它在容器中運行,或直接作爲控制檯應用程序運行。 – mparaz

回答

11

文章Using Headless Mode in the Java SE Platform概述了對這些應用程序施加的限制。

作爲一個具體的例子JFreeChart是一個在桌面和servlet上下文廣泛使用的圖形程序。對於後者,可以使用幾個ChartUtilities中的任何一個在無頭環境中流化渲染的內容。

或者,考慮Java Web Start來部署現有的Swing應用程序,例如看到的JFreeChart演示here

附錄:此Oracle論壇thread表明Java Media Framework確實可以拋出HeadlessException;建議的解決方法是指定一個特定的系統屬性值:

-Dawt.toolkit=sun.awt.HeadlessToolkit 

JFreeChart論壇thread表明Xvfbvnc作爲替代方案,當headless模式不可用。

+0

謝謝。這也適用於移動動畫?對不起,我的描述中沒有清楚(現在編輯)。 – mparaz

+0

我已經詳細闡述了上述內容,儘管我會歡迎任何更具說服力的結果。 – trashgod

+0

謝謝!看起來像AWT/Swing需要一個假圖形系統來處理。 – mparaz

相關問題