Tomcat Catalina.bat详解

Catalina.bat是Tomcat的核心脚本,负责处理启动、关闭等操作。本文详细分析了Catalina.bat的逻辑,包括环境变量设置、类路径构建、Java选项配置等,帮助读者理解Tomcat的内部工作原理。
摘要由CSDN通过智能技术生成

Catalina.bat是tomcat所有脚本中最重要的脚本,完成几乎所有的tomcat操作。如启动,关闭等等,都是由catalina.bat脚本来完成的。接下来,我将对Tomcat catalina.bat脚本进行分析。 

    首先省去catalina.bat开头诸多注解,这些注解主要是讲解各个变量是干什么的。需要的话,自己看下英文就可以了。这里就不翻译了。 

rem Guess CATALINA_HOME if not defined  查看是否在tomcat目录下,与startup.bat里相同,不解释了。需要的话可以看我的另一篇博客。 
set CURRENT_DIR=%cd% 
if not "%CATALINA_HOME%" == "" goto gotHome 
set CATALINA_HOME=%CURRENT_DIR% 
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome 
cd .. 
set CATALINA_HOME=%cd% 
cd %CURRENT_DIR% 
:gotHome 
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome 
echo The CATALINA_HOME environment variable is not defined correctly 
echo This environment variable is needed to run this program 
goto end 
:okHome 

rem Get standard environment variables 
if exist "%CATALINA_HOME%\bin\setenv.bat" call"%CATALINA_HOME%\bin\setenv.bat" 如果存在setenv.bat脚本,调用它,我的tomcat 没有这个脚本 

rem Get standard Java environment variables 
if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath 查看是否存在setclasspath.bat脚本,如果存在,转到okSetclasspath位置 
echo Cannot find %CATALINA_HOME%\bin\setclasspath.bat 否则输出下面两行,并退出 
echo This file is needed to run this program 
goto end 
:okSetclasspath    okSetclasspath位置 

set BASEDIR=%CATALINA_HOME%   设定BASEDIR变量与CATALINA_HOME变量值相同 
call "%CATALINA_HOME%\bin\setclasspath.bat" %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%\lib\jcert.jar;%JSSE_HOME%\lib\jnet.jar;%JSSE_HOME%\lib\jsse.jar如果有加入到CLASSPATH变量后面 
:noJsse                                   
set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jar  将bootstrap.jar加入到CLASSPATH里 

if not "%CATALINA_BASE%" == "" goto gotBase  如果CATALINA_BASE变量不为空,跳过,转到gotBase位置 
set CATALINA_BASE=%CATALINA_HOME%  如果为空,将CATALINA_BASE设为CATALINA_HOME变量的值 
:gotBase 

if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir  CATALINA_TMPDIR不为空,跳过,转到gotTmpdir位置 
set CATALINA_TMPDIR=%CATALINA_BASE%\temp   如果为空,将 CATALINA_TMPDIR设为%CATALINA_BASE%\temp变量的值(即tomcat\temp) 
:gotTmpdir 

if not exist "%CATALINA_HOME%\bin\tomcat-juli.jar" goto noJuli  如果不存在tomcat-juli.jar这个类,转到noJuli位置 
set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager- Djava.util.logging.co

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值