java在圖形處理時呼叫了本地的圖形處理庫。在利用Java作圖形處理(例如:圖片縮放,圖片簽名,產生報表)時,如果執行在windows上不會出問題。如果將程式移植到Linux/Unix上的時候有可能出現圖形不能顯示的錯誤。
提示訊息:"Can't connect to X11 window server"這是由於Linux的圖形處理需要一個X Server伺服器。
解決辦法:
1.如果伺服器上安裝有圖形介面,可以透過設定環境變數:DISPALY=127.0.0.1:0.0解決。
2. 如果沒有安裝圖形介面,可以在Java執行時加上參數:-Djava.awt.headless=true。
3. 使用PJA函式庫來取代本機圖形處理庫。
Tomcat的修改如下:
開啟%Tomcat_home%/bin/catalina.sh 檔案在-Djava.io.tmpdir="$CATALINA_TMPDIR"後,啟動Tomcat的腳本中加上:-Djava.awt.headless=true
"$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS"
-classpath "$CLASSPATH"
-Dcatalina.base="$CATALINA_BASE"
-Dcatalina.home="$CATALINA_HOME"
-Djava.io.tmpdir="$CATALINA_TMPDIR"
-Djava.awt.headless=true
org.apache.catalina.startup.Bootstrap "$@" start
>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
if [ ! -z "$CATALINA_PID" ]; then
echo $! > $CATALINA_PID fi
fielif [ "$1" = "stop" ] ; then
儲存後,重新啟動就可以處理圖形了。