java在圖形處理時(shí)調(diào)用了本地的圖形處理庫(kù)振湾。在利用Java作圖形處理(比如:圖片縮放,圖片簽名亡脸,生成報(bào)表)時(shí)押搪,如果運(yùn)行在windows上不會(huì)出問(wèn)題。如果將程序移植到Linux/Unix上的時(shí)候有可能出現(xiàn)圖形不能顯示的錯(cuò)誤梗掰。
提示信息:"Can't connect to X11 window server"這是由于Linux的圖形處理需要一個(gè)X Server服務(wù)器嵌言。
解決辦法:
1.如果服務(wù)器上安裝有圖形界面,可以通過(guò)設(shè)置環(huán)境變量:DISPALY=127.0.0.1:0.0解決及穗。
2. 如果沒(méi)有安裝圖形界面,可以在Java運(yùn)行時(shí)加上參數(shù):-Djava.awt.headless=true绵载。
3. 使用PJA庫(kù)來(lái)代替本地圖形處理庫(kù)埂陆。
Tomcat的修改如下:
打開(kāi) %Tomcat_home%/bin/catalina.sh 文件在-Djava.io.tmpdir="$CATALINA_TMPDIR"后,啟動(dòng)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
保存后娃豹,重新啟動(dòng)就可以處理圖形了