网上有很多文章在说catalina.sh的用户定制环境变量配置的时候,都是直接在catalina.sh里面添加变量,这是不合理的。catalina.sh开篇的注释里面有一段话:
# Environment Variable Prerequisites
#
# Do not set the variables in this script. Instead put them into a script
# setenv.sh in CATALINA_BASE/bin to keep your customizations separate.
这段话的意思是用户自己的变量不要混在catalina.sh里面,不要改这个脚本,而是另外在bin目录下面建一个脚本setenv.sh,示例如下:
export JAVA_OPTS="-Dswitch.env=dev -Xms256m -Xmx1024m -Xmn128m -XX:+HeapDumpOnOutOfMemoryError"
启动的时候,catalina.sh会自动加载setenv.sh里的变量。