- 先看startup.bat文件,其中
rem
表示为注释符。
---------rem Guess CATALINA_HOME if not defined---------
set "CURRENT_DIR=%cd%" //把当前目录设置到CURRENT_DIR中
if not "%CATALINA_HOME%" == "" goto gotHome //如果没有设置CATALINA_HOME,跳转至gotHome
set "CATALINA_HOME=%CURRENT_DIR%"
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome //CATALINA_HOME目录下是否存在catalina.bat文件,存在则跳转至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" //将这个路径赋值给变量EXECUTABLE
---------rem Check that target executable exists---------
if exist "%EXECUTABLE%" goto okExec //存在EXECUTABLE,跳转至okExec
echo Cannot find "%EXECUTABLE%"
echo This file is needed to run this program
goto end
:okExec
---------rem Get remaining unshifted command line arguments and save them in the---------
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs //判断第一个参数是否为空
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgs
call "%EXECUTABLE%" start %CMD_LINE_ARGS% //执行catalina.bat文件,有参数的话,带上参数
:end
通过startup启动tomcat,实则是通过执行catalina.bat文件,也就是说,我们通过catalina.bat文件,也可以启动tomcat。
2. catalina.bat文件
setlocal
---------rem Suppress Terminate batch job on CTRL+C---------
if not ""%1"" == ""run"" goto mainEntry
if "%TEMP%" == "" goto mainEntry
if exist "%TEMP%\%~nx0.run" goto mainEntry
echo Y>"%TEMP%\%~nx0.run"
if not exist "%TEMP