startup.bat分析 tomcat的startup.bat

startup.bat中关键设置语句:
@echooff//设置在echo off后面的命令都不显示在命令行上
//rem 表示注释

if "%OS%" == "Windows_NT"setlocal //检查os环境变量的值是否等于Windows_NT,setlocal命令之后对环境变量的改变只对该批处理文件当次运行有影响;

set CURRENT_DIR=�%

if not "�TALINA_HOME%" == "" gotogotHome//检查是否设置了CATALINA_HOME环境变量是否已经设置,如果设置了则调转到gotHome标记处
setCATALINA_HOME=%CURRENT_DIR%//否则将CATALINA_HOME环境变量设置为startup.bat启动执行时的工作目录
if exist "�TALINA_HOME%bincatalina.bat" gotookHome//检查在CATALINA_HOME环境变量下是否存在bincatalina.bat,如果已经存在则跳转到okHome
cd..//否则将CATALINA_HOME环境变量设置为startup.bat启动执行时的工作目录的上级目录;
set CATALINA_HOME=�%
cd %CURRENT_DIR%
:gotHome
startup.bat分析 tomcat的startup.bat
if exist "�TALINA_HOME%bincatalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not definedcorrectly
echo This environment variable is needed to run this program
goto end

:okHome
setEXECUTABLE=�TALINA_HOME%bincatalina.bat//EXECUTABLE环境变量指向catalina.bat批处理程序,由此可知,Tomcat调用startup的时候实际上调用的是catalina.bat


if exist "%EXECUTABLE%" goto okExec
echo Cannot find %EXECUTABLE%
echo This file is needed to run this program
goto end

:okExec
setCMD_LINE_ARGS=//清除环境变量原来的值
:setArgs
if ""%1""=="""" gotodoneSetArgs//检查命令行第一个参数值是否为空
set CMD_LINE_ARGS=%CMD_LINE_ARGS%%1//将命令行第一个参数值追加到CMD_LINE_ARGS环境变量上,个个参数以空格相连
shift//将命令行参数依次前移
goto setArgs

:doneSetArgs
call "%EXECUTABLE%" start%CMD_LINE_ARGS%//调用catalina.bat,首先给它传递start参数,然后将原来传送给startup.bat的参数CMD_LINE_ARGS传给catalina.bat;

:end

//在shutdown.bat程序中,传递给catalina.bat的第一个参数是stop;

call "%EXECUTABLE%" stop %CMD_LINE_ARGS%

//在catalina.bat程序中的关键设置:
if exist "�TALINA_HOME%binsetenv.bat" call"�TALINA_HOME%binsetenv.bat"//检查CATALINA_HOME目录下面是否存在binsetenv.bat批处理程序,如果存在则调用该批处理文件
if exist "�TALINA_HOME%binsetclasspath.bat" gotookSetclasspath//不存在setenv.bat批处理文件时,检查是否有binsetclasspath.bat,有的话跳转到okSetclasspath标记处
echo Cannot find�TALINA_HOME%binsetclasspath.bat//否则提示Cannot find �TALINA_HOME%binsetclasspath.bat,并且跳到结束标记处
goto end
:okSetclasspath
setBASEDIR=�TALINA_HOME%BASEDIR环境变量在setclasspath.bat中要使用,所以先设置
call "�TALINA_HOME%binsetclasspath.bat"%1//需要先设置classpath
setCLASSPATH=%CLASSPATH%;�TALINA_HOME%binbootstrap.jar//将bootstrap.jar这个包添加到classpath上;
if not "�TALINA_BASE%" == "" gotogotBase//CATALINA_BASE不为空则跳转到gotBase标记处
set CATALINA_BASE=�TALINA_HOME%
:gotBase
set CATALINA_TMPDIR=�TALINA_BASE%temp
:gotTmpdir
echo Using CATALINA_BASE:�TALINA_BASE%
echo Using CATALINA_HOME:�TALINA_HOME%
echo Using CATALINA_TMPDIR: �TALINA_TMPDIR%
echo UsingJAVA_HOME:%JAVA_HOME%
set _EXECJAVA=%_RUNJAVA%
set MAINCLASS=org.apache.catalina.startup.Bootstrap
set ACTION=start
if ""%1"" == ""start"" gotodoStart//如果传送给它的第一个参数为start,则跳转到doStart标记处
:doStart
if not "%OS%" == "Windows_NT" gotonoTitle//检查os环境变量是不是Windows_NT
set _EXECJAVA=start "Tomcat"%_RUNJAVA%//如果是的话则设置_EXECJAVA,新启动一个名为"Tomcat"的程序
gotogotTitle//设置完后跳转到:gotTitle
:noTitle
set _EXECJAVA=start%_RUNJAVA%//启动一个没有标题的程序
:gotTitle
if not ""%1"" == ""-security"" gotoexecCmd//执行execCmd

//执行%_EXECJAVA%程序,后面则为传递给它的一系列可选参数
:execCmd
%_EXECJAVA% %JAVA_OPTS% �TALINA_OPTS% �BUG_OPTS%-Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath"%CLASSPATH%" -Dcatalina.base="�TALINA_BASE%"-Dcatalina.home="�TALINA_HOME%" -Djava.io.tmpdir="�TALINA_TMPDIR%"%MAINCLASS% %CMD_LINE_ARGS% �TION%

//setclasspath.bat批处理文件,主要用于设置classpath环境变量,要求在运行此批处理程序之前设置了java_home变量;

if not "%JAVA_HOME%" == "" goto gotJdkHome
echo Neither the JAVA_HOME nor the JRE_HOME environment variable isdefine
goto exit
:gotJdkHome
if not exist "%JAVA_HOME%binjava.exe" goto noJavaHome
set JRE_HOME=%JAVA_HOME%
goto okJavaHome
:noJavaHome
echo The JAVA_HOME environment variable is not definedcorrectly
goto exit
:okJavaHome
if not "�SEDIR%" == "" gotogotBasedir//检查BASEDIR是否已经设置
echo The BASEDIR environment variable is not defined
echo This environment variable is needed to run this program
goto exit
:gotBasedir
if exist "�SEDIR%binsetclasspath.bat" gotookBasedir//判断该目录下是否有binsetclasspath.bat,如果没有则结束
echo The BASEDIR environment variable is not definedcorrectly
echo This environment variable is needed to run this program
goto exit
:okBasedir
setJAVA_ENDORSED_DIRS=�SEDIR%endorsed//如果有binsetclasspath.bat,则设置一系列的环境变量
setCLASSPATH=%JAVA_HOME%libtools.jar//此处设置的CLASSPATH环境变量只有%JAVA_HOME%libtools.jar,外部设置的环境变量对该classpath环境变量没用
set _RUNJAVA="%JRE_HOME%binjava"


1.设置CATALINA_HOME环境变量为TOMCAT安装的根目录,可以在任何地方调用startup.bat,但是调用startup.bat的本质等于调用catalina.bat,所以还需要对catalina.bat中需要的环境变量进行设置
2.通过调用setclasspath.bat设置JAVA_HOME环境变量为JDK安装的根目录,设置catalina.bat程序运行时需要的classpath.
3.在path环境变量中加入Tomcat下bin目录,以便Tomcat安装在任何一个目录,虚拟机都能找到bin目录下的Tomcat批处理程序
4.Tomcat.exe程序与Tomcat的批处理文件可以理解为是不相干的,即是在tomcat批处理文件中设置的环境变量对Tomcat.exe程序没有影响;
5.Tomcat5.0以上的对应的djk版本需要是5.0以上版本;

6.Tomcat服务器是不会继承系统原来设置的classPath,它的classPath仅仅设置为<Catalina-home>/bin/bootstrap.jar,<Catalina-home>/bin/tools.jar两个jar包。

  

爱华网本文地址 » http://www.413yy.cn/a/25101016/318285.html

更多阅读

关于召开各公司年度经营分析会议的通知 召开会议通知范文

关于召开各公司年度经营分析会议的通知各公司:为加强交流,促进相互学习,落实岗位责任。公司决定于2008年3月15日—16日召开各公司全体管理层年度经营分析会。本次会议以专业的视角,务实的工作态度,高效的工作作风,创新的工作精神,制定共

如何对事例进行深入透彻的分析 形容分析透彻的成语

如何对事例进行深入透彻的分析授课:北京市第十七中学 蒋梅点评:北京市朝阳区教研中心 何郁(此课例及点评已发《中学作文教学研究》2013年第9期)“如何对事例进行透彻的分析”教学设计一、导入:上节课,对于药家鑫的事件,我们每个同学都写

fft谱分析中的栅栏效应和频谱泄露 fft频谱分析

http://blog.csdn.net/sunfoot001/archive/2010/09/22/5900917.aspxfft谱分析中的栅栏效应和频谱泄露栅栏效应:对采样信号的频谱,为提高计算效率,通常采用FFT算法进行计算,设数据点数为:  N = T/dt = T.fs  则计算得到的离散

声明:《startup.bat分析 tomcat的startup.bat》为网友阑珊几场分享!如侵犯到您的合法权益请联系我们删除