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
执行结果:
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
以下这部分代码是删除临时文件(如果存在的话)
catalina.bat的流程图
在catalina.bat的:end下方加入一行代码
在cmd下执行startup.bat,执行结果:
红框上方是默认输出;红框内是新添加的输出
将红框内的内容排一下版
start-打开一个新的cmd窗口
"title"-cmd窗口的标题(执行catalina.bat start时title为Tomcat)
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程序!