報如下錯誤:
ava.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1135)
at java.awt.image.BufferedImage.getGraphics(BufferedImage.java:1125)
Truncated. see log file for complete stacktrace
解決方案:
第一種書寫方式:
Java代碼
- # Initialize the common environment.
- JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.awt.headless=true"
# Initialize the common environment.JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.awt.headless=true"
JAVA_OPTIONS參數在檔案末尾的資訊中進行載入:${JAVA_OPTIONS}
第二種書寫方式:也可以直接加到檔案末尾行
Java代碼
- ${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Djava.awt.headless=true -Dweblogic.Name=${SERVER_NAME} -Dweblogic.ProductionModeEnabled=${PRODUCTION_MODE} -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" weblogic.Server
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Djava.awt.headless=true -Dweblogic.Name=${SERVER_NAME} -Dweblogic.ProductionModeEnabled=${PRODUCTION_MODE} -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" weblogic.Server
上述兩種方法效果相同。
以下為轉貼:
1.什麼是Headless mode?
Headless模式是系統的一種配置模式。在該模式下,系統缺少了顯示裝置、鍵盤或滑鼠。
2.何時使用和headless mode?
Headless模式雖然不是我們願意見到的,但事實上我們卻常常需要在該模式下工作,尤其是伺服器端程式開發人員。因為伺服器(如提供Web服務的主機)往往可能缺少前述裝置,但又需要使用他們提供的功能,產生相應的資料,以提供給用戶端(如瀏覽器所在的配有相關的顯示裝置、鍵盤和滑鼠的主機)。
3.如何使用和Headless mode?
一般是在程式開始啟用headless模式,告訴程式,現在你要工作在Headless mode下,就不要指望硬體幫忙了,你得自力更生,依靠系統的計算能力類比出這些特性來:
System.setProperty("java.awt.headless","true");