开发这么久了,总会时不时碰到内存溢出的错误,知道应该去 catalina 中去设置一下jvm的内存大小。可是每次都忘记具体在哪个位置。而且,很多时候,出现内存溢出的环境都不是本机,而是服务器搭建环境的时候,而此时也没太多时间让自己去读一下 catalina.bat 这个脚本,只能每次都上网搜。今天正好有时间,就读了一下catalina.bat 这个脚本,记录一下。
以windows下的tomcat6.0.45 为例
脚本其实并不复杂。tomcat的启动一般是通过 startup.bat 这个脚本,一般是直接双击启动。
而catalina.bat 是在startup.bat 调用启动的。
startup.bat 脚本:
rem 判断当前系统版本,若是Windows_NT 则 setlocal 开启环境变量本地化
if "%OS%" == "Windows_NT" setlocal
rem ---------------------------------------------------------------------------
rem Start script for the CATALINA Server
rem ---------------------------------------------------------------------------
rem Guess CATALINA_HOME if not defined
rem 设置当前CURRENT_DIR变量值为当前目录%cd%
set "CURRENT_DIR=%cd%"
rem 若CATALINA_HOME 不为空,则跳转到gotHome,我一般不设置CATALINA_HOME,则不跳转,继续执行
if not "%CATALINA_HOME%" == "" goto gotHome
rem 设置CATALINA_HOME 为 上面定义的 CURRENT_DIR
set "CATALINA_HOME=%CURRENT_DIR%"
rem catalina.bat如果存在,则跳转到okHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
cd ..
set "CATALINA_HOME=%cd%"
cd "%CURRENT_DIR%"
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
rem 再次跳转到okExec
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find "%EXECUTABLE%"
echo This file is needed to run this program
goto end
:okExec
rem 判断 第一个输入参数:%1 是否为空,若为空,则到 doneSetArgs
rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""==""""