启动tomcat的时候,我们通常使用catalina.sh来进行。如果仔细研究一下,就会发现可以设置很多环境变量。
比如我们想通过远程debug,那么就需要配置jpda。catallina.sh已经把jpda所需要的默认参数配置好了,只要在启动的时候加上,就帮你把jpda启动好,非常方便。
再比如,我们希望用一个tomcat,来管理多个项目,那么可以对每个项目新建一个目录,把CATALINA_BASE和CATALINA_TMPDIR指过来就可以了。
如果我们希望查看GC信息,那么就增加JAVA_OPTS就好了。
对于自己的项目来说,可以把这些配置写成一个script,里面去启动catalina.sh。
export JAVA_HOME=/usr/java/jdk1.5.0_10
export TOMCAT_HOME=/opt/tomcat
export CATALINA_HOME="/opt/tomcat"
export CATALINA_BASE="/myproject"
export CATALINA_TMPDIR="/myproject/temp"
export CATALINA_PID="/myproject/catalina.pid"
export CATALINA_OPT="-Djava.awt.headless=true"
JAVA_OPTS="-server -Xms1200M -Xmx1200M -XX:+AggressiveHeap -XX:MaxPermSize=128M -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"
#JAVA_OPTS+=" -Dcom.sun.management.jmxremote"
#JAVA_OPTS="$JAVA_OPTS -verbose:gc -XX:+PrintGCDetails"
#JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps"
#JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCApplicationConcurrentTime"
#JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCApplicationStoppedTime"
export JAVA_OPTS
cd $CATALINA_HOME && ./bin/catalina.sh jpda "$@"
#cd $CATALINA_HOME && ./bin/catalina.sh "$@"
通过上面的配置,myproject成为我们的工作目录,这样tomcat bin都是统一的,各项目的配置文件和启动日志等内容都是相互独立的,非常便于管理。