在配置測試環境時,將生產服務器的Tomcat目錄打包過來后解壓后,啟動Tomcat后,發現如下問題:
[tomcat@gsp bin]$ ./shutdown.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/jdk1.6.0_12
/usr/local/tomcat/bin/catalina.sh: line 315: /usr/java/jdk1.6.0_12/bin/java: No such file or directory
[tomcat@gsp bin]$ ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/jdk1.6.0_12
[tomcat@gsp bin]$ cd /usr/java/jdk1.6.0_12
-bash: cd: /usr/java/jdk1.6.0_12: No such file or directory
因為在測試環境,安裝的是jdk-6u31-linux-x64-rpm.bin,其實並沒有所謂的/usr/java/jdk1.6.0_12目錄,而是/usr/java/jdk1.6.0_31
[tomcat@CEG-eSCM jdk1.6.0_31]$ pwd
/usr/java/jdk1.6.0_31
於是修改了.bash_profile
[tomcat@gsp ~]$ more .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
JAVA_HOME=/usr/java/jdk1.6.0_31/
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
PATH=$PATH:$HOME/bin
export PATH
但是當時忘了使用source .bash_profile 使配置信息生效,結果依然報這個錯誤,搜索了一下可以通過修改setclasspath.sh文件,在里面添加下面變量解決問題。如下所示
export JAVA_HOME=......
export JRE_HOME=.......
其實只要使.bash_profile配置文件生效了后,就可以將setclasspath.sh下的JAVA_HOME去掉了。在這個配置文件指定JAVA_HOME或JRE_HOME主要用於當服務器有多個版本的JDK時,指定tomcat使用某個特殊版本.
參考資料:
http://blog.csdn.net/eifjgoergfgrgr/article/details/7556882