1、cd %CURRENT_DIR%:gotHomeecho The CATALINA_HOME environment variable is not defined correctlyecho This environment variable is needed to run this programgoto endokHomerem Get standard environment variables%CATALINA_HOME%binsetenv.bat call 如果存在setenv.bat脚本,调用它,我的tomcat 没有这个脚本rem Get standard Java envi
2、ronment variables%CATALINA_HOME%binsetclasspath.bat goto okSetclasspath 查看是否存在setclasspath.bat脚本,如果存在,转到okSetclasspath位置echo Cannot find %CATALINA_HOME%binsetclasspath.bat 否则输出下面两行,并退出echo This file is needed to run this programokSetclasspath okSetclasspath位置set BASEDIR=%CATALINA_HOME% 设定BASEDIR变量与C
3、ATALINA_HOME变量值相同call %1 调用setclasspath.bat脚本并加上参数if errorlevel 1 goto end 如果存在错误 退出rem Add on extra jar files to CLASSPATH 设定JSSE_HOME变量,如果存在加入CLASSPATH,不存在跳过if %JSSE_HOME% goto noJsse 检查是否存在JSSE_HOME变量set CLASSPATH=%CLASSPATH%;%JSSE_HOME%libjcert.jar;%JSSE_HOME%libjnet.jar;%JSSE_HOME%libjsse.jar 如
4、果有加入到CLASSPATH变量后面noJsse %CATALINA_HOME%binbootstrap.jar 将bootstrap.jar加入到CLASSPATH里if not %CATALINA_BASE% goto gotBase 如果CATALINA_BASE变量不为空,跳过,转到gotBase位置set CATALINA_BASE=%CATALINA_HOME% 如果为空,将CATALINA_BASE设为CATALINA_HOME变量的值gotBaseif not %CATALINA_TMPDIR% goto gotTmpdir CATALINA_TMPDIR不为空,跳过,转到go
5、tTmpdir位置set CATALINA_TMPDIR=%CATALINA_BASE%temp 如果为空,将 CATALINA_TMPDIR设为%CATALINA_BASE%temp变量的值(即tomcattemp)gotTmpdirif not exist %CATALINA_HOME%bintomcat-juli.jar goto noJuli 如果不存在tomcat-juli.jar这个类,转到noJuli位置set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManag
6、er - Djava.util.logging.config.file=%CATALINA_BASE%conflogging.properties 如果存在,将变量加入到JAVA_OPTS里noJuliset JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -Dfile.encoding=UTF8 -Duser.timezone=GMT -Djava.security.auth.login.config=%CATALINA_HOME%/conf/jaas.config 设定JAVA_OPTS变量echo Using CATALINA_BASE: %CATALIN
7、A_BASE% 输出CATALINA_BASE变量值echo Using CATALINA_HOME: %CATALINA_HOME% 输出CATALINA_HOME变量值echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR% 输出CATALINA_TMPDIR变量值if %1debug goto use_jdk 如果变量%1里存在debug ,转到use_jdk位置echo Using JRE_HOME: %JRE_HOME% 输出JRE_HOME变量值goto java_dir_displayed 转到java_dir_displayeduse_jdke
8、cho Using JAVA_HOME: %JAVA_HOME% 输出JAVA_HOME变量值java_dir_displayed 下面几行设定相应变量set _EXECJAVA=%_RUNJAVA% set MAINCLASS=org.apache.catalina.startup.Bootstrapset ACTION=startset SECURITY_POLICY_FILE=set DEBUG_OPTS=set JPDA=if not jpda goto noJpdaset JPDA=jpda%JPDA_TRANSPORT% goto gotJpdaTransportset JPDA_
9、TRANSPORT=dt_shmemgotJpdaTransport%JPDA_ADDRESS% goto gotJpdaAddressset JPDA_ADDRESS=jdbconngotJpdaAddress%JPDA_SUSPEND% goto gotJpdaSuspendset JPDA_SUSPEND=ngotJpdaSuspend%JPDA_OPTS% goto gotJpdaOptsset JPDA_OPTS=-Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%
10、JPDA_SUSPEND%gotJpdaOptsshiftnoJpdaif goto doDebug 如果%1为debug,转到doDebug,运行debug模式run goto doRun 如果%1为run,转到doRun,运行正常模式start goto doStart 如果%1为start,转到doStart,启动tomcatstop goto doStop 如果%1为stop,转到doStop,关闭tocmatversion goto doVersion 如果%1为version,转到doVersion,显示tomcat的版本号echo Usage: catalina ( comman
11、ds . ) 如果%1没有上述内容,输出下面几行,并结束echo commands:echo debug Start Catalina in a debuggerecho debug -security Debug Catalina with a security managerecho jpda start Start Catalina under JPDA debuggerecho run Start Catalina in the current windowecho run -security Start in the current window with security mana
12、gerecho start Start Catalina in a separate windowecho start -security Start in a separate window with security managerecho stop Stop Catalinaecho version What version of tomcat are you running?goto end:doDebugshift 将%2里的值转到%1set _EXECJAVA=%_RUNJDB% 将变量 _EXECJAVA设为_RUNJDB变量的值set DEBUG_OPTS=-sourcepat
13、h %CATALINA_HOME%.jakarta-tomcat-catalinacatalinasrcshare 设定DEBUG_OPTS变量if not -security goto execCmd 如果%1不为-security,转到execCmd位置shift 将%2里的值转到%1echo Using Security Manager 输出该行set SECURITY_POLICY_FILE=%CATALINA_BASE%confcatalina.policy设定SECURITY_POLICY_FILE变量的值goto execCmd 转到execCmd位置:doRun goto ex
14、ecCmd 如果%1不为-security,转到execCmd位置doStart%OS%Windows_NT goto noTitle 如果OS变量不为Windows_NT,转到noTitleset _EXECJAVA=start Tomcat %_RUNJAVA% 设定_EXECJAVA变量的值goto gotTitle 转到gotTitle位置noTitleset _EXECJAVA=start %_RUNJAVA% 设定 _EXECJAVA 变量的值gotTitle set SECURITY_POLICY_FILE=%CATALINA_BASE%confcatalina.policy d
15、oStopset ACTION=stop 将ACTION的变量设为stopset CATALINA_OPTS= 设CATALINA_OPTS为空goto execCmd 转到execCmd位置:doVersion 显示tomcat版本号%_EXECJAVA% -classpath %CATALINA_HOME%serverlibcatalina.jar org.apache.catalina.util.ServerInfo 执行该命令goto end 结束该程序:execCmd rem Get remaining unshifted command line arguments and sav
16、e them in the以下几行将命令参数存入CMD_LINE_ARGS变量中set CMD_LINE_ARGS=setArgs= goto doneSetArgsset CMD_LINE_ARGS=%CMD_LINE_ARGS% %1goto setArgsdoneSetArgsrem Execute Java with the applicable properties%JPDA% goto doJpda 如果JPDA变量不为空,转到doJpda位置%SECURITY_POLICY_FILE% goto doSecurity如果SECURITY_POLICY_FILE变量不为空,转到do
17、Security位置 如果都没有执行下面命令,并结束该程序%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs=%JAVA_ENDORSED_DIRS% -classpath %CLASSPATH% -Dcatalina.base= -Dcatalina.home= -Djava.io.tmpdir= %MAINCLASS% %CMD_LINE_ARGS% %ACTION%doSecurity 执行下面命令,并结束该程序 -Djava.security.manager -Djava.security.
18、policy=doJpda 如果SECURITY_POLICY_FILE变量不为空,转到doSecurityJpda位置,为空执行下面命令,并结束该程序 if not goto doSecurityJpda%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs=doSecurityJpda 执行下面命令,并结束该程序end终结: catalina.bat咋一看还以为是什么windows程序,可以双击运行,实际上就是调用java命令运行Bootstrap类。从上面代码可以看出tom
19、cat确实是一个纯java的程序,脚本最后都变成直接使用java命令执行程序,与我们普通写的java程序,没有什么不同。只不过由于 tomcat可以使用各种众多的模式(如debug,Security等),以及各种需要各种参数所以不得不使用脚本来执行。 如果你想看看你到底使用了什么命令可以在“ goto doSecurity”这行下面添加两行。 echo %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dir .(下面那段,是一行但太长,折行了) pause 第一行的命令是打印这具话
20、,系统会将% %里面的变量提换成找到的值并输出。第二行是暂停程序,你可以通过任意键来恢复运行。 下面是我的程序打印的结果:start C:Program FilesJavajdk1.6.0_01binjava -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=worktomcatconflogging.properties -Xms128m -Xmx512m -Dfile.encoding=UTF8 -Duser.timezone=GMT -Djav
21、a.security.auth.login.config=C:worktomcat/conf/jaas.config -Djava.endorsed.dirs=worktomcatcommonendorsedProgram FilesJavajdk1.6.0_01libtools.jar;worktomcatbinbootstrap.jarworktomcatworktomcattemp org.apache.catalina.startup.Bootstrap start start tomcat是另开一个窗口,窗口名是tomcat的意思,你可以去掉这部分,完将你程序打印的拷贝到命令行下,点回车,看是不是一样运行 tomcat了。Catalina.bat startup实际时就将各种系统变量加以总结,输出成这个命令。 呵呵!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1