對於一個Java服務器來說,經常要處理一些圖形元素,例如地圖的創建或者圖形和圖表等。這些API基本上總是需要運行一個X-server以便能使用AWT(Abstract Window Toolkit,抽象窗口工具集)。然而,運行一個不必要的X-server並不是一種好的網絡治理方式。
這個解決方案依賴於你的Java版本:
JDK 1.4引入了headless模式支持,只需設置系統屬性即可:
-Djava.awt.headless=true
啟用後,Java將在無頭模式下運行,無需X Server即可使用AWT功能。
對於較舊版本,可以使用eTeks的PJA工具包(Pure Java AWT Toolkit):
-Dawt.toolkit=com.eteks.awt.PJAToolkit
-Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment
在IBM JDK環境下,需要設置以下屬性(假設PJA的jar放在lib/pja目錄下):
-Djava.awt.fonts=$JAVA_HOME/jre/lib/fonts
-Djava2d.font.usePlatformFont=false
-Duser.home=lib/pja
啟動應用後,可通過以下方式驗證headless模式是否生效:
System.out.println("Headless mode: " + GraphicsEnvironment.isHeadless());