Tomcat 8(六)catalina.bat详解

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

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. @echo off  
  2. echo %JAVA_HOME%  
  3. 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

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

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. if not ""%1"" == ""run"" goto mainEntry  
  2. if "%TEMP%" == "" goto mainEntry  
  3. if exist "%TEMP%\%~nx0.run" goto mainEntry  
  4. echo Y>"%TEMP%\%~nx0.run"  
  5. if not exist "%TEMP%\%~nx0.run" goto mainEntry  
  6. echo Y>"%TEMP%\%~nx0.Y"  
  7. call "%~f0" %* <"%TEMP%\%~nx0.Y"  
  8. rem Use provided errorlevel  
  9. set RETVAL=%ERRORLEVEL%  
  10. del /Q "%TEMP%\%~nx0.Y" >NUL 2>&1  
  11. exit /B %RETVAL%  
  12. :mainEntry  
  13. del /Q "%TEMP%\%~nx0.run" >NUL 2>&1  

catalina.bat的流程图


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

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. 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,执行结果:


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

将红框内的内容排一下版

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. start "Tomcat" "C:\Program Files\Java\jdk1.7.0_51\bin\java"  
  2. -Djava.util.logging.config.file="D:\Program Files\apache-tomcat-8.0.3\conf\logging.properties"  
  3. -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager  
  4. -Djava.endorsed.dirs="D:\Program Files\apache-tomcat-8.0.3\endorsed"  
  5. -classpath "D:\Program Files\apache-tomcat-8.0.3\bin\bootstrap.jar;D:\Program Files\apache-tomcat-8.0.3\bin\tomcat-juli.jar"  
  6. -Dcatalina.base="D:\Program Files\apache-tomcat-8.0.3"  
  7. -Dcatalina.home="D:\Program Files\apache-tomcat-8.0.3"  
  8. -Djava.io.tmpdir="D:\Program Files\apache-tomcat-8.0.3\temp"  
  9. 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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值