startup.bat

来源:互联网 发布:电信云计算待遇 编辑:程序博客网 时间:2024/05/29 04:50

startup.bat

@echo offcolor 0aset CURRENT_DIR=%cd%if not "%CATALINA_HOME%" == "" goto gotHomeset CATALINA_HOME=%CURRENT_DIR%/../:gotHomeecho. %CATALINA_HOME%if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"::如果存在setenv.bat,call之if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath::如果存在setclasspath.bat,跳转到okSetclasspathecho Cannot find %CATALINA_HOME%\bin\setclasspath.batgoto end::找不到setclasspath.bat,结束程序:okSetclasspathset BASEDIR=%CATALINA_HOME%::BASEDIR环境变量是setclasspath.bat需要用到的变量,在调用之前我们提前把它设置好。call "%CATALINA_HOME%\bin\setclasspath.bat" ::顾名思义,setclasspath.bat就是用来设置环境变量的批处理文件,文件内容附在文章后set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jar::这是把CLASSPATH在原来的基础上增加了%CATALINA_HOME%\bin\bootstrap.jar。注意,此处的bootstrap.jar是Tomcat的内核,它同时用到了commons-daemon.jar和commons-logging-api.jar等jar包,但是我们并没有把它们包含在环境变量中,怎么找到的呢?其实这是通过在bootstrap.jar中的MANIFEST.MF设置的。::接下又是设置一系列环境变量:if not "%CATALINA_BASE%" == "" goto gotBaseset CATALINA_BASE=%CATALINA_HOME%:gotBaseif not "%CATALINA_TMPDIR%" == "" goto gotTmpdirset CATALINA_TMPDIR=%CATALINA_BASE%\temp:gotTmpdir::接下来打印出各个环境变量:echo Using CATALINA_BASE:   %CATALINA_BASE%echo Using CATALINA_HOME:   %CATALINA_HOME%echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%echo Using JAVA_HOME:       %JAVA_HOME%set _RUNJAVA=%JAVA_HOME%\bin\java::_RUNJAVA这个环境变量是在setclasspath.bat中设置的。set MAINCLASS=org.apache.catalina.startup.Bootstrap::设置启动类。set ACTION=startif ""%1"" == ""start"" goto doStartif ""%1"" == ""stop"" goto doStop:doStartif not "%OS%" == "Windows_NT" goto noTitleset _EXECJAVA=start "Tomcat" %_RUNJAVA%::我们知道,在Windows系统的命令行中如果用start运行某个程序,就会启动一个新窗口,这里的"Tomcat"实际上就是为新窗口设置标题而已。goto gotTitle:noTitleset _EXECJAVA=start %_RUNJAVA%:gotTitlegoto execCmd:doStopset ACTION=stop:execCmdset JAVA_OPTS= -server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true echo Using _EXECJAVA:  %_EXECJAVA%echo.::接下来的语句貌似很复杂的样子,其实就是执行_EXECJAVA这个变量所指定的内容。echo ExecCmd : %_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%%_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%:end::set JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true " ::java %JAVA_OPTS% -jar bootstrap.jar

setclasspath.bat

@echo offcolor 0aecho.------------------------set JAVA_HOME = "E:\karl\server\jdk\jdk1.6.0_21"::set BASEDIR = "E:\karl\server\Tomcat 6.0\bin"if not "%JAVA_HOME%" == "" goto gotJavaHomeecho The JAVA_HOME environment variable is not definedgoto end:gotJavaHomeif not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHomegoto okJavaHome:noJavaHomeecho The JAVA_HOME environment variable is not defined correctlyecho end:okJavaHomeif not "%BASEDIR%" == "" goto gotBasedirecho The BASEDIR environment variable is not definedgoto end:gotBasedirif exist "%BASEDIR%\bin\setclasspath.bat" goto okBasedirecho The BASEDIR environment variable is not defined correctlygoto end:okBasedirset JAVA_ENDORSED_DIRS=%BASEDIR%\common\endorsedset CLASSPATH=%JAVA_HOME%\lib\tools.jarset _RUNJAVA="%JRE_HOME%\bin\java":end


0 0