这里主要是判断 CATALINA_HOME 环境变量的值 和 CATALINA_BASE 环境变量的值是否以 分号为结尾, 如果以 分号为结尾的话, 就报错退出.
第四段脚本代码
rem Ensure that any user defined CLASSPATH variables are not used on startup, rem but allow them to be specified in setenv.bat, in rare case when it is needed. set CLASSPATH= rem Get standard environment variables if not exist "%CATALINA_BASE%binsetenv.bat" goto checkSetenvHome call "%CATALINA_BASE%binsetenv.bat" goto setenvDone :checkSetenvHome if exist "%CATALINA_HOME%binsetenv.bat" call "%CATALINA_HOME%binsetenv.bat" :setenvDone rem Get standard Java environment variables if exist "%CATALINA_HOME%binsetclasspath.bat" goto okSetclasspath echo Cannot find "%CATALINA_HOME%binsetclasspath.bat" echo This file is needed to run this program goto end :okSetclasspath call "%CATALINA_HOME%binsetclasspath.bat" %1 if errorlevel 1 goto end
设置一个临时环境变量: CLASSPATH.
如果 Tomcat 的 bin 目录下面存在 setnv.bat 脚本的话, 就执行它. 通常情况下是没有的.
继而又判断 setclasspath.bat 脚本是否存在, 如果不存在的话, 直接报错, 停止启动 Tomcat.
如果存在的话, 就去调用它, 并把 第一个参数传进去.
setclasspath.bat 这个脚本主要设置了几个环境变量
JAVA_HOME JRE_HOME JAVA_ENDORSED_DIRS = %CATALINA_HOME%endorsed _RUNJAVA = %JRE_HOME%binjava.exe _RUNJDB = %JAVA_HOME%binjdb.exe第五段脚本代码
rem Add on extra jar file to CLASSPATH rem Note that there are no quotes as we do not want to introduce random rem quotes into the CLASSPATH if "%CLASSPATH%" == "" goto emptyClasspath set "CLASSPATH=%CLASSPATH%;" :emptyClasspath set "CLASSPATH=%CLASSPATH%%CATALINA_HOME%binbootstrap.jar" if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir set "CATALINA_TMPDIR=%CATALINA_BASE%temp" :gotTmpdir rem Add tomcat-juli.jar to classpath rem tomcat-juli.jar can be over-ridden per instance if not exist "%CATALINA_BASE%bintomcat-juli.jar" goto juliClasspathHome set "CLASSPATH=%CLASSPATH%;%CATALINA_BASE%bintomcat-juli.jar" goto juliClasspathDone :juliClasspathHome set "CLASSPATH=%CLASSPATH%;%CATALINA_HOME%bintomcat-juli.jar" :juliClasspathDone
这段代码主要做了三件事:
把 Tomcat bin 目录下的 bootstrap.jar 加入到环境变量中 设置 CATALINA_TMPDIR 环境变量的值为 Tomcat 目录下的 temp 目录 把 Tomcat bin 目录下的 tomcat-juli.jar 加入到环境变量中第六段脚本代码
if not "%JSSE_OPTS%" == "" goto gotJsseOpts set JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048" :gotJsseOpts set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%" rem Register custom URL handlers rem Do this here so custom URL handles (specifically 'war:...') can be used in the security policy set "JAVA_OPTS=%JAVA_OPTS% -Djava.protocol.handler.pkgs=org.apache.catalina.webresources" if not "%LOGGING_CONFIG%" == "" goto noJuliConfig set LOGGING_CONFIG=-Dnop if not exist "%CATALINA_BASE%conflogging.properties" goto noJuliConfig set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%conflogging.properties" :noJuliConfig set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%" if not "%LOGGING_MANAGER%" == "" goto noJuliManager set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager :noJuliManager set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%"









