寫在前面:
由於項目使用jdk1.6開發,所以對應服務器應安裝jdk1.6和tomcat6
1、環境變量的配置:
打開/etc/bashrc配置環境變量
JAVA_HOME=/usr/appsoft/jdk1.6.0_45/jre
export JAVA_HOME
CLASSPATH= <span> $ </span> JAVA_HOME/lib/dt.jar: <span>$</span>JAVA_HOME/lib/tools.jar:<span>$</span>CLASSPATH
export CLASSPATH
CATALINA_BASE=/usr/appsoft/tomcat
export CATALINA_BASE
CATALINA_HOME=$CATALINA_BASE
export CATALINA_HOME
PATH=\$JAVA_HOME/bin:\$CATALINA_HOME/bin:\$PATH
export PATH
2、使環境變量生效:
配置完環境變量之后執行:#source /etc/bashrc使環境變量生效
3、安裝java運行環境:
a) 將jdk-6u45-linux-i586.bin上傳到目標機器的/usr/appsoft/software目錄下;
b) 在目標機器上打開一個終端,並在終端中執行如下命令:
#cd /usr/appsoft/software
#./jdk-6u45-linux-i586.bin
運行之后會在/usr/appsoft/software下有一個jdk1.6.0_45目錄
c) 將運行jdk-6u45-linux-i586.bin解壓得到的jdk1.6.0_45移至/usr/appsoft/下。具體為在終端中執行以下命令:
#mv jdk1.6.0_45 /usr/appsoft
4、tomcat的安裝:
Tomcat安裝包的名稱為apache-tomcat-6.0.20.zip,該包為二進制發布包,不需要編譯,直接解壓后就能使用。安裝過程其實就是歸檔文件解壓過程,並將解壓獲取到的目錄進行改名,具體為:
a) 以二進制方式將apache-tomcat-6.0.20.zip上傳至/usr/appsoft/software下。
b) 解壓apache-tomcat-6.0.20.zip,即在終端中輸入命令
#unzip apache-tomcat-6.0.20.zip
c) 解壓完成后/usr/appsoft/software下有文件夾apache-tomcat-6.0.20。將該文件夾移動到/usr/appsoft下,並改名為tomcat。在終端中輸入命令
#mv apache-tomcat-6.0.20 /usr/appsoft/tomcat
5、發布程序
將iesweb.zip上傳到/usr/appsoft/tomcat/webapps下,並解壓
#unzip iesweb.zip
6、啟動tomcat
進入到/usr/appsoft/tomcat/bin目錄中,執行如下命令:
#./catalina.sh run
執行# ps -ef |grep java | grep -v grep | grep tomcat查看tomcat進程
殺死tomcat進程的方法為:
#kill -9 進程號
7、驗證發布是否成功
在瀏覽器中輸入:http://localhost:8080/iesweb/jsp/login.jsp驗證是否出現登錄界面,如出現登錄界面但是驗證碼無法顯示可以按照“問題處理”部分方法解決。
問題處理:
- 安裝java和tomcat時可能對jdk-6u45-linux-i586.bin和apache-tomcat-6.0.20.zip沒有權限,需要加權限:# chmod +x jdk-6u45-linux-i586.bin apache-tomcat-6.0.20.zip
- 執行catalina.sh時沒有權限需要加權限:# chmod +x catalina.sh
- 啟動tomcat時報錯:The BASEDIR environment variable is not defined correctly
This environment variable is needed to run this program,檢查環境變量沒有錯誤,可能是權限問題:# chmod 777 -R /usr/appsoft/tomcat/bin/
- 程序發布好之后出現“驗證碼無法顯示的問題”:並報出錯誤: linux Could not initialize class java.awt.image.BufferedImage ,
解決方法:打開文件/usr/appsoft/tomcat/bin/catalina.sh,在所有類似以下代碼:
"$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
-Djava.security.manager \
-Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
在尾部加上一句:
-Djava.awt.headless=true \
修改后內容如下:
exec "$_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 \
以tomcat6.0為例,總共有七處這樣的地方,修改好后即可。
本文參考了以下文章:
- linux下tomcat6.0與jdk安裝詳細步驟 : http://blog.csdn.net/bingyingao/article/details/5614773
- TOMCAT-報錯The BASEDIR environment variable is not defined correctly :http://blog.csdn.net/evils798/article/details/7284594
--------------------------------------------
linux Could not initialize class java.awt.image.BufferedImage
--------------------------------------------
網站驗證碼突然無法顯示,並報如下錯誤。
javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class java.awt.image.BufferedImage
網上搜索了一下,在catalina.sh里加上一句“-Djava.awt.headless=true \”,問題解決。
經查,出現這種情況一般就是啟動tomcat的用戶無法訪問Xserver,包括Xserver沒有啟動或者沒有權限訪問.
以下為轉貼:
1.什么是Headless mode?
Headless模式是系統的一種配置模式。在該模式下,系統缺少了顯示設備、鍵盤或鼠標。
2.何時使用和headless mode?
Headless模式雖然不是我們願意見到的,但事實上我們卻常常需要在該模式下工作,尤其是服務器端程序開發者。因為服務器(如提供Web服務的主機)往往可能缺少前述設備,但又需要使用他們提供的功能,生成相應的數據,以提供給客戶端(如瀏覽器所在的配有相關的顯示設備、鍵盤和鼠標的主機)。
3.如何使用和Headless mode?
一般是在程序開始激活headless模式,告訴程序,現在你要工作在Headless mode下,就不要指望硬件幫忙了,你得自力更生,依靠系統的計算能力模擬出這些特性來:
System.setProperty("
Java.awt.headless","true");
修改${TOMCAT_HOME}/bin/catalina.sh或${TOMCAT_HOME}/bin/catalina.bat文件:
在所有類似以下代碼:
"$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
-Djava.security.manager \
-Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
在尾部加上一句:
-Djava.awt.headless=true \
修改后內容如下:
exec "$_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 \
以tomcat6.0為例,總共有七處這樣的地方,修改好后即可。
