zoukankan      html  css  js  c++  java
  • Tomcat中catalina.bat详解

    转载于:http://hi.baidu.com/xiaohuiq8/blog/item/09626fed5ecde12a63d09fcf.html

    因为上一篇博文已经解释过startup.bat文件内容了,这里就光挑一些重点语句解说下:
    1. if exist "%CATALINA_HOME%insetenv.bat" call "%CATALINA_HOME%insetenv.bat"
    如果存在setenv.bat,call之
    2. if exist "%CATALINA_HOME%insetclasspath.bat" goto okSetclasspath
    如果存在setclasspath.bat,跳转到okSetclasspath
    3. echo Cannot find %CATALINA_HOME%insetclasspath.bat
    4. goto end
    找不到setclasspath.bat,结束程序
    5. :okSetclasspath
    6. set BASEDIR=%CATALINA_HOME%
    BASEDIR环境变量是setclasspath.bat需要用到的变量,在调用之前我们提前把它设置好。
    7. call "%CATALINA_HOME%insetclasspath.bat" 
    顾名思义,setclasspath.bat就是用来设置环境变量的批处理文件,文件内容附在文章后
    8. set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%inootstrap.jar
    这是把CLASSPATH在原来的基础上增加了%CATALINA_HOME%inootstrap.jar。注意,此处的bootstrap.jar是Tomcat的内核,它同时用到了commons-daemon.jar和commons-logging-api.jar等jar包,但是我们并没有把它们包含在环境变量中,怎么找到的呢?其实这是通过在bootstrap.jar中的MANIFEST.MF设置的。
    接下又是设置一系列环境变量:
    9. if not "%CATALINA_BASE%" == "" goto gotBase
    10. set CATALINA_BASE=%CATALINA_HOME%
    11. :gotBase
    12. if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
    13. set CATALINA_TMPDIR=%CATALINA_BASE% emp
    14. :gotTmpdir
    接下来打印出各个环境变量:
    15. echo Using CATALINA_BASE:   %CATALINA_BASE%
    16. echo Using CATALINA_HOME:   %CATALINA_HOME%
    17. echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
    18. echo Using JAVA_HOME:       %JAVA_HOME%
    19. set _EXECJAVA=%_RUNJAVA%
    _RUNJAVA这个环境变量是在setclasspath.bat中设置的。
    20. set MAINCLASS=org.apache.catalina.startup.Bootstrap
    设置启动类。
    21. set ACTION=start
    22. if ""%1"" == ""start"" goto doStart
    23. if ""%1"" == ""stop"" goto doStop
    24. :doStart
    25. if not "%OS%" == "Windows_NT" goto noTitle
    26. set _EXECJAVA=start "Tomcat" %_RUNJAVA%
    我们知道,在Windows系统的命令行中如果用start运行某个程序,就会启动一个新窗口,这里的"Tomcat"实际上就是为新窗口设置标题而已。
    27. goto gotTitle
    28. :noTitle
    29. set _EXECJAVA=start %_RUNJAVA%
    30. :gotTitle
    31. goto execCmd
    32. :doStop
    33. set ACTION=stop
    34. :execCmd
    接下来的语句貌似很复杂的样子,其实就是执行_EXECJAVA这个变量所指定的内容。
    35. %_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%
    36. :end


    技巧提示:
    将catllina.bat文件中的位于%_RUNJAVA%前面的start "Tomcat"部分删除后,就不会在启动一个新窗口,所以不会出现了错误还来不及看的时候新窗口就自动关闭了,因此在命令行窗口中执行startup.bat命令就可以查看到Tomcat启动失败时的提示信息。


    附:setclasspath.bat
    if not "%JAVA_HOME%" == "" goto gotJavaHome
    echo The JAVA_HOME environment variable is not defined
    goto end
    :gotJavaHome
    if not exist "%JAVA_HOME%injava.exe" goto noJavaHome
    goto okJavaHome
    :noJavaHome
    echo The JAVA_HOME environment variable is not defined correctly
    echo end
    :okJavaHome
    if not "%BASEDIR%" == "" goto gotBasedir
    echo The BASEDIR environment variable is not defined
    goto end
    :gotBasedir
    if exist "%BASEDIR%insetclasspath.bat" goto okBasedir
    echo The BASEDIR environment variable is not defined correctly
    goto end
    :okBasedir
    set JAVA_ENDORSED_DIRS=%BASEDIR%commonendorsed
    set CLASSPATH=%JAVA_HOME%lib ools.jar
    set _RUNJAVA="%JRE_HOME%injava"
    :end

  • 相关阅读:
    PHP基本的语法以及和Java的差别
    Linux 性能測试工具
    【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)
    【Oracle 集群】Oracle 11G RAC教程之集群安装(七)
    【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)
    【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 特殊问题和实战经验(五)
    【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之缓存融合技术和主要后台进程(四)
    【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)
    Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)
    【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)
  • 原文地址:https://www.cnblogs.com/lzhat/p/4366050.html
Copyright © 2011-2022 走看看