Tomcat 8(六)catalina.bat详解

来源:互联网 发布:上位机编程视频 编辑:程序博客网 时间:2024/06/10 06:10

catalina.bat的流程图较长,先说下结果

执行startup.bat等同于catalina.bat start,而执行catalina.bat start等同于java Bootstrap start(附带-D-classpath选项)

Tomcat就是一个java程序

--------------------------------------------------------------------------------------------------------------------------------

catalina.bat中涉及一个新的bat语法:替换变量中的某个字符

获取系统变量:%JAVA_HOME%

获取系统变量%JAVA_HOME%,%JAVA_HOME%中的a替换成CSDN%JAVA_HOME:a=CSDN%

创建Test.bat

@echo offecho %JAVA_HOME%echo %JAVA_HOME:a=CSDN%

执行结果:


catalina.bat中的%CATALINA_HOME:;=%,是将%CATALINA_HOME%;删除

catalina.bat中通过"%CATALINA_HOME%" == "%CATALINA_HOME:;=%",检查CATALINA_HOME中是否包含;

true-不包含;false-包含

-------------------------------------------------------------------------------------------------------------------------------

下面我们来看看catalina.bat(代码就不贴了。。。)

@echo off-从本条命令开始开始,关闭回显

if "%OS%" == "Windows_NT" setlocal-判断是否为Windows系统。是,则执行setlocal

以下这部分代码是删除临时文件(如果存在的话)

if not ""%1"" == ""run"" goto mainEntryif "%TEMP%" == "" goto mainEntryif exist "%TEMP%\%~nx0.run" goto mainEntryecho Y>"%TEMP%\%~nx0.run"if not exist "%TEMP%\%~nx0.run" goto mainEntryecho Y>"%TEMP%\%~nx0.Y"call "%~f0" %* <"%TEMP%\%~nx0.Y"rem Use provided errorlevelset RETVAL=%ERRORLEVEL%del /Q "%TEMP%\%~nx0.Y" >NUL 2>&1exit /B %RETVAL%:mainEntrydel /Q "%TEMP%\%~nx0.run" >NUL 2>&1

catalina.bat的流程图


在catalina.bat的:end下方加入一行代码

echo %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

在cmd下执行startup.bat,执行结果:


红框上方是默认输出;红框内是新添加的输出

将红框内的内容排一下版

start "Tomcat" "C:\Program Files\Java\jdk1.7.0_51\bin\java"-Djava.util.logging.config.file="D:\Program Files\apache-tomcat-8.0.3\conf\logging.properties"-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.endorsed.dirs="D:\Program Files\apache-tomcat-8.0.3\endorsed"-classpath "D:\Program Files\apache-tomcat-8.0.3\bin\bootstrap.jar;D:\Program Files\apache-tomcat-8.0.3\bin\tomcat-juli.jar"-Dcatalina.base="D:\Program Files\apache-tomcat-8.0.3"-Dcatalina.home="D:\Program Files\apache-tomcat-8.0.3"-Djava.io.tmpdir="D:\Program Files\apache-tomcat-8.0.3\temp"org.apache.catalina.startup.Bootstrap start

start-打开一个新的cmd窗口

"title"-cmd窗口的标题(执行catalina.bat starttitleTomcat)

command/program-执行的命令或程序(执行catalina.bat start时,执行的程序是java)

cmd下输入java,可看到java的可选项-D、-classpath

org.apache.catalina.startup.Bootstrap start-运行Bootstrap,并传递参数start

执行catalina.bat start,是按上图最左边的路线执行的

所以,startup.bat=catalina.bat start=java Bootstrap start(附带-D、-classpath选项)

Tomcat就是一个java程序!

0 0
原创粉丝点击