Tomcat 学习进阶历程之启动脚本篇一:startup.bat我是从上大学的时候才开始接触计算机,一开始就是win2000,所以对批处理脚本命令都不会。平时启TOMCAT都是鼠标双击startup.bat了,很少看过里面写的是什么,也借学习TOMCAT的机会学习一下批处理的常用命令,不求都记住,但求以后再见到批处理命令能看的懂,说的出是干什么的。下面就一行一行的解读TOMCAT_HOME/bin目录下的startup.bat文件。其中 rem 后面为中文的是自己对批处理命令的解读。 rem 下一行的作用是关闭批处理的回显功能,加@是让当前行也不进行回显 @echo off rem 获取变量OS的值,判断是否为指定字符串。批处理中使用一个变量使用%变量名%符号。setlocal和endlocal命令执行结果是让中间的程序对于系统变量的改变只在程序内起作用,不会影响整个系统级别 if "%OS%" =="Windows_NT" setlocal rem 将当前文件执行所在目录赋值给变量CURRENT_DIR,如果变量CATALINA_HOME不为空,跳转到gotHome标记处,否则向下执行,CATALINA_HOME设置为当前目录,一般情况下当前目录都是TOMCAT_HOME\bin。 set"CURRENT_DIR=%cd%" if not"%CATALINA_HOME%" == "" goto gotHome set"CATALINA_HOME=%CURRENT_DIR%" rem 判断指定目录下的catalina.bat文件是否存在,存在了跳转到标记okHome处。否则向下执行。因为CATALINA_HOME的实际路径一般为当前目录(当前目录一般是在TOMCAT_HOME\bin下),此处又加了一个\bin,所以一般批处理会继续向下执行。这点要注意。向下执行会调用cd..,向上走一个目录,然后将目录路径赋值给CATALINA_HOME变量。然后再重新进入TOMCAT_HOME\bin的目录下(因为CURRENT_DIR在前面保存了这个路径)。此时CATALINA_HOME的路径才是真正的不包含bin目录的路径。: gotHome是一个标记,用来做跳转用。 if exist"%CATALINA_HOME%\bin\catalina.bat" goto okHome cd .. set"CATALINA_HOME=%cd%" cd"%CURRENT_DIR%" :gotHome rem 此时下面的判断是正确的,会跳转到okHome处。不正确就结束TOMCAT启动 if exist"%CATALINA_HOME%\bin\catalina.bat" goto okHome goto end :okHome rem 将catalina.bat的路径赋值给EXECUTABLE,并检查是否存在 set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" if exist"%EXECUTABLE%" goto okExec echo Cannot find"%EXECUTABLE%" echo This file is needed torun this program goto end :okExec
rem 获取命令行参数。这里通过goto人为制造了一个循环,直到获得的参数为空为止。Shift是将第一个参数移除,后面的参数会向前移动,这个每次循环只需要获得第一个,就可以取得所有的参数。 set CMD_LINE_ARGS= :setArgs if""%1""=="""" goto doneSetArgs setCMD_LINE_ARGS=%CMD_LINE_ARGS% %1 shift goto setArgs :doneSetArgs rem 组合好参数后,通过call命令调用catalina.bat启动脚本,并传递参数。注意传递的还有一个start参数。这个后面再说 call "%EXECUTABLE%"start %CMD_LINE_ARGS% :end 以上内容就是Tomcat启动脚本startup.bat的完整内容了。因为是第一次这么详细的看脚本,注释写的比较细。
写的过程中,由于看不懂脚本命令的意思,就不停的找度娘,哈哈,有度娘,真好!!!
写了这么多,也鼓励一下自己。再接再励,一定要把Tomcat好好研究一番
(责任编辑:IT) |