tomcat启动命令

安装tomcat之后,设置CATALINA_HOME=tomcat的安装目录,比如安装在c:/tomcat,那么CATALINA_HOME=c:/tomcat,添加路径到path环境变量,%CATALINA_HOME%/bin,然后打开控制台,进入tomcat的bin目录,这儿有tomcat的启动脚本,startup.bat启动tomcat,shutdown.bat关闭tomcat。我是在windows下做的调试,如果在Linux/unix下,相应的启动脚本为startup.sh和shutdown.sh。

tomcat启动脚本解说

用文本编辑器打开startup.bat,你会看到如下,内容:

[html]  view plain copy
  1. @echo off
  2. if "%OS%" == "Windows_NT" setlocal
  3. rem ---------------------------------------------------------------------------
  4. rem Start script for the CATALINA Server
  5. rem
  6. rem $Id: startup.bat,v 1.6 2004/05/27 18:25:11 yoavs Exp $
  7. rem ---------------------------------------------------------------------------
  8. rem Guess CATALINA_HOME if not defined
  9. set CURRENT_DIR=%cd%
  10. if not "%CATALINA_HOME%" == "" goto gotHome
  11. set CATALINA_HOME=%CURRENT_DIR%
  12. if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
  13. cd ..
  14. set CATALINA_HOME=%cd%
  15. cd %CURRENT_DIR%
  16. :gotHome
  17. if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
  18. echo The CATALINA_HOME environment variable is not defined correctly
  19. echo This environment variable is needed to run this program
  20. goto end
  21. :okHome
  22. set EXECUTABLE=%CATALINA_HOME%/bin/catalina.bat
  23. rem Check that target executable exists
  24. if exist "%EXECUTABLE%" goto okExec
  25. echo Cannot find %EXECUTABLE%
  26. echo This file is needed to run this program
  27. goto end
  28. :okExec
  29. rem Get remaining unshifted command line arguments and save them in the
  30. set CMD_LINE_ARGS=
  31. :setArgs
  32. if ""%1""=="""" goto doneSetArgs
  33. set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
  34. shift
  35. goto setArgs
  36. :doneSetArgs
  37. call "%EXECUTABLE%" start %CMD_LINE_ARGS%
  38. :end

第一段,内容如下,先设置好变量CATALINA_HOME,然后判断是否存在脚本文件"%CATALINA_HOME%/bin/catalina.bat",如果找不到该文件,那么退出脚本的执行,提示设置CATALINA_HOME环境变量,这就是我们在安装tomcat后,要设置环境变量CATALINA_HOME的原因。

[csharp]  view plain copy
  1. @echo off
  2. if "%OS%" == "Windows_NT" setlocal
  3. rem ---------------------------------------------------------------------------
  4. rem Start script for the CATALINA Server
  5. rem
  6. rem $Id: startup.bat,v 1.6 2004/05/27 18:25:11 yoavs Exp $
  7. rem ---------------------------------------------------------------------------
  8. rem Guess CATALINA_HOME if not defined
  9. set CURRENT_DIR=%cd%
  10. if not "%CATALINA_HOME%" == "" goto gotHome
  11. set CATALINA_HOME=%CURRENT_DIR%
  12. if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
  13. cd ..
  14. set CATALINA_HOME=%cd%
  15. cd %CURRENT_DIR%
  16. :gotHome
  17. if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
  18. echo The CATALINA_HOME environment variable is not defined correctly
  19. echo This environment variable is needed to run this program
  20. goto end
  21. :okHome
  22. set EXECUTABLE=%CATALINA_HOME%/bin/catalina.bat
[csharp]  view plain copy

第二段,内容如下,用EXECUTABLE脚本指向的脚本文件,执行启动命令,传入参数start,既进入启动脚本catalina.bat的执行。

[html]  view plain copy
  1. rem Check that target executable exists
  2. if exist "%EXECUTABLE%" goto okExec
  3. echo Cannot find %EXECUTABLE%
  4. echo This file is needed to run this program
  5. goto end
  6. :okExec
  7. rem Get remaining unshifted command line arguments and save them in the
  8. set CMD_LINE_ARGS=
  9. :setArgs
  10. if ""%1""=="""" goto doneSetArgs
  11. set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
  12. shift
  13. goto setArgs
  14. :doneSetArgs
  15. call "%EXECUTABLE%" start %CMD_LINE_ARGS%
  16. :end

catalina.bat内容如下:

[html]  view plain copy
  1. @echo off
  2. if "%OS%" == "Windows_NT" setlocal
  3. rem ---------------------------------------------------------------------------
  4. rem Start/Stop Script for the CATALINA Server
  5. rem
  6. rem Environment Variable Prequisites
  7. rem
  8. rem   CATALINA_HOME   May point at your Catalina "build" directory.
  9. rem
  10. rem   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions
  11. rem                   of a Catalina installation.  If not present, resolves to
  12. rem                   the same directory that CATALINA_HOME points to.
  13. rem
  14. rem   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
  15. rem                   "stop", or "run" command is executed.
  16. rem
  17. rem   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
  18. rem                   the JVM should use (java.io.tmpdir).  Defaults to
  19. rem                   %CATALINA_BASE%/temp.
  20. rem
  21. rem   JAVA_HOME       Must point at your Java Development Kit installation.
  22. rem
  23. rem   JAVA_OPTS       (Optional) Java runtime options used when the "start",
  24. rem                   "stop", or "run" command is executed.
  25. rem
  26. rem   JSSE_HOME       (Optional) May point at your Java Secure Sockets Extension
  27. rem                   (JSSE) installation, whose JAR files will be added to the
  28. rem                   system class path used to start Tomcat.
  29. rem
  30. rem   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"
  31. rem                   command is executed. The default is "dt_shmem".
  32. rem
  33. rem   JPDA_ADDRESS    (Optional) Java runtime options used when the "jpda start"
  34. rem                   command is executed. The default is "jdbconn".
  35. rem
  36. rem $Id: catalina.bat,v 1.9.2.2 2004/09/23 20:17:14 yoavs Exp $
  37. rem ---------------------------------------------------------------------------
  38. rem Guess CATALINA_HOME if not defined
  39. set CURRENT_DIR=%cd%
  40. if not "%CATALINA_HOME%" == "" goto gotHome
  41. set CATALINA_HOME=%CURRENT_DIR%
  42. if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
  43. cd ..
  44. set CATALINA_HOME=%cd%
  45. cd %CURRENT_DIR%
  46. :gotHome
  47. if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
  48. echo The CATALINA_HOME environment variable is not defined correctly
  49. echo This environment variable is needed to run this program
  50. goto end
  51. :okHome
  52. rem Get standard environment variables
  53. if exist "%CATALINA_HOME%/bin/setenv.bat" call "%CATALINA_HOME%/bin/setenv.bat"
  54. rem Get standard Java environment variables
  55. if exist "%CATALINA_HOME%/bin/setclasspath.bat" goto okSetclasspath
  56. echo Cannot find %CATALINA_HOME%/bin/setclasspath.bat
  57. echo This file is needed to run this program
  58. goto end
  59. :okSetclasspath
  60. set BASEDIR=%CATALINA_HOME%
  61. call "%CATALINA_HOME%/bin/setclasspath.bat"
  62. rem Add on extra jar files to CLASSPATH
  63. if "%JSSE_HOME%" == "" goto noJsse
  64. set CLASSPATH=%CLASSPATH%;%JSSE_HOME%/lib/jcert.jar;%JSSE_HOME%/lib/jnet.jar;%JSSE_HOME%/lib/jsse.jar
  65. :noJsse
  66. set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%/bin/bootstrap.jar
  67. if not "%CATALINA_BASE%" == "" goto gotBase
  68. set CATALINA_BASE=%CATALINA_HOME%
  69. :gotBase
  70. if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
  71. set CATALINA_TMPDIR=%CATALINA_BASE%/temp
  72. :gotTmpdir
  73. rem ----- Execute The Requested Command ---------------------------------------
  74. echo Using CATALINA_BASE:   %CATALINA_BASE%
  75. echo Using CATALINA_HOME:   %CATALINA_HOME%
  76. echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
  77. echo Using JAVA_HOME:       %JAVA_HOME%
  78. set _EXECJAVA=%_RUNJAVA%
  79. set MAINCLASS=org.apache.catalina.startup.Bootstrap
  80. set ACTION=start
  81. set SECURITY_POLICY_FILE=
  82. set DEBUG_OPTS=
  83. set JPDA=
  84. if not ""%1"" == ""jpda"" goto noJpda
  85. set JPDA=jpda
  86. if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
  87. set JPDA_TRANSPORT=dt_shmem
  88. :gotJpdaTransport
  89. if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
  90. set JPDA_ADDRESS=jdbconn
  91. :gotJpdaAddress
  92. shift
  93. :noJpda
  94. if ""%1"" == ""debug"" goto doDebug
  95. if ""%1"" == ""run"" goto doRun
  96. if ""%1"" == ""start"" goto doStart
  97. if ""%1"" == ""stop"" goto doStop
  98. if ""%1"" == ""version"" goto doVersion
  99. echo Usage:  catalina ( commands ... )
  100. echo commands:
  101. echo   debug             Start Catalina in a debugger
  102. echo   debug -security   Debug Catalina with a security manager
  103. echo   jpda start        Start Catalina under JPDA debugger
  104. echo   run               Start Catalina in the current window
  105. echo   run -security     Start in the current window with security manager
  106. echo   start             Start Catalina in a separate window
  107. echo   start -security   Start in a separate window with security manager
  108. echo   stop              Stop Catalina
  109. echo   version           What version of tomcat are you running?
  110. goto end
  111. :doDebug
  112. shift
  113. set _EXECJAVA=%_RUNJDB%
  114. set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%/../../jakarta-tomcat-catalina/catalina/src/share"
  115. if not ""%1"" == ""-security"" goto execCmd
  116. shift
  117. echo Using Security Manager
  118. set SECURITY_POLICY_FILE=%CATALINA_BASE%/conf/catalina.policy
  119. goto execCmd
  120. :doRun
  121. shift
  122. if not ""%1"" == ""-security"" goto execCmd
  123. shift
  124. echo Using Security Manager
  125. set SECURITY_POLICY_FILE=%CATALINA_BASE%/conf/catalina.policy
  126. goto execCmd
  127. :doStart
  128. shift
  129. if not "%OS%" == "Windows_NT" goto noTitle
  130. set _EXECJAVA=start "Tomcat" %_RUNJAVA%
  131. goto gotTitle
  132. :noTitle
  133. set _EXECJAVA=start %_RUNJAVA%
  134. :gotTitle
  135. if not ""%1"" == ""-security"" goto execCmd
  136. shift
  137. echo Using Security Manager
  138. set SECURITY_POLICY_FILE=%CATALINA_BASE%/conf/catalina.policy
  139. goto execCmd
  140. :doStop
  141. shift
  142. set ACTION=stop
  143. goto execCmd
  144. :doVersion
  145. %_EXECJAVA% -classpath "%CATALINA_HOME%/server/lib/catalina.jar" org.apache.catalina.util.ServerInfo
  146. goto end
  147. :execCmd
  148. rem Get remaining unshifted command line arguments and save them in the
  149. set CMD_LINE_ARGS=
  150. :setArgs
  151. if ""%1""=="""" goto doneSetArgs
  152. set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
  153. shift
  154. goto setArgs
  155. :doneSetArgs
  156. rem Execute Java with the applicable properties
  157. if not "%JPDA%" == "" goto doJpda
  158. if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
  159. %_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%
  160. goto end
  161. :doSecurity
  162. %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
  163. goto end
  164. :doJpda
  165. if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
  166. %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %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%
  167. goto end
  168. :doSecurityJpda
  169. %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
  170. goto end
  171. :end

解释,1。再次验证catalina.bat;2。调用setclasspath.bat设置java虚拟机相关的环境变量,所以在运行tomcat的前,一定要先安装jdk,并设置好JAVA_HOME环境变量;3。设置启动程序,添加CLASSPATH,bootstrap.jar,和启动类org.apache.catalina.startup.Bootstrap;4。最后执行虚拟机,运行tomcat。

运行tomcat的参数行为%_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%,在我的电脑上调试,将所有的变量内容转译出来,执行的命令即为:start "Tomcat" "C:/j2sdk1.4.2_15/bin/Java"    -Djava.endorsed.dirs="C:/Tomcat 5.0/common/endorsed" -classpath "C:/j2sdk1.4.2_15/lib/tools.jar;C:/Tomcat 5.0/bin/bootstrap.jar" -Dcatalina.base="C:/Tomcat 5.0" -Dcatalina.home="C:/Tomcat 5.0" -Djava.io.tmpdir="C:/Tomcat 5.0/temp" org.apache.catalina.startup.Bootstrap  start

在该命令中,start "Tomcat"是在控制态打开一个新的窗口,然后运行java虚拟机C:/j2sdk1.4.2_15/bin/java,现在大家应该明白了,tomcat是从bootstrap.jar中的org.apache.catalina.startup.Bootstrap类的main函数开始启动运行,并且传入了start参数。-D开始的都是虚拟机的运行参数。

用winrar打开bootstrap.jar打开,在META-INF目录下打开MANIFEST.MF,你会看到如下内容: Manifest-Version: 1.0 Ant-Version: Apache Ant 1.6.1 Created-By: 1.4.2-b28 (Sun Microsystems Inc.) Main-Class: org.apache.catalina.startup.Bootstrap Specification-Title: Catalina Specification-Version: 1.0 Class-Path: jmx.jar commons-daemon.jar commons-logging-api.jar 指定了该jar包从那个类开始运行,依赖那些jar包。

结论

通过对脚本的研究,我们应该知道,tomcat从那儿开始运行,只有有了运行的线索,那么我们就可以从头开始调试tomcat源代码。调试tomcat源代码的准备工作,从www.apache.org上下载相应版本,带源代码的安装程序,并安装。

Windows 下启动tomcat相关推荐

  1. tomcat7修改内存 win_详解Windows下调整Tomcat启动参数的实现方法

    Windows下调整Tomcat启动参数 Tomcat默认可以使用的内存为128MB,对于访问数比较多.比较吃内存的应用来说,这是不够的.我们可以通过调整Java虚拟机的启动参数来增加Tomcat可使 ...

  2. windows下整合tomcat和nginx

    tomcat自带的apache服务器对于并发请求的处理能力比较差,并且耗费资源很大,而nginx这方便却很强悍,以下是在windows下整合tomcat和nginx的过程. 1.准备工作   下载to ...

  3. Windows下Apache Tomcat?的下载安装和使用

    本文将给出在windows下Apache Tomcat的下载安装和使用的简易教程. 前往Tomcat的官网http://tomcat.apache.org/.如下图所示: 在上图左侧红色方框中选择版本 ...

  4. Windows下搭建Tomcat集群的配置详解

    < Windows下搭建Tomcat集群基础入门详解 > 前言 在搭建 < Apache + Tomcat 实现Web服务器集群 > 前我们还需要实现 Tomcat集群实现Se ...

  5. Mac下启动tomcat

    习惯了Windows下的tomcat启动,切换到Mac下,简直心里有一万个草泥马... 记录下过程: 1.访问Apache官网,下载对应的tomcat 版本,一般选择tar格式: 2.解压文件,命令也 ...

  6. jsp+php 服务器环境,Windows下Apache+Tomcat+jsp+php的服务器整合配置

    具体配置参照 Windows下Apache+Tomcat+jsp+php的服务器整合配置出现Service Unavailable错误 Service Unavailable The server i ...

  7. 关于Windows下关闭tomcat

    关于Windows下关闭tomcat 首先要知道tomcat的端口(大部分都是8080端口)不清楚的可以去到conf文件夹下的server.xml文件找到端口!!! 关闭tomcat可以使用命令行cm ...

  8. tomcat环境配置以及cmd下启动tomcat

    下载tomcat 进入tomcat官网选择版本 tomcat环境变量 在系统变量中新建下面俩个变量 CATALINA_BASE     tomcat安装目录D:\tomcat CATALINA_HOM ...

  9. Linux 和Windows 下启动 关闭 Redis 服务

    1.linux 下启动 关闭 redis 找到redis的根目录,可用如下指令 whereis redis 找到redis的根目录 进入 .进入后发现只有conf文件没有server文件(*启动时需要 ...

最新文章

  1. qdockwidget设置隐藏标题栏,重叠时tab标签位置,自动填充满整个窗口
  2. Python爬虫入门(7):正则表达式
  3. 等式成立JAVA_java – 找到两个线性等式成立的整数集
  4. 《统计学习方法》P74勘误
  5. 在VC6中使用ADO读取Oracle中的BLOB字段
  6. windows、Linux下nginx搭建集群
  7. 使用HttpClient MultipartEntityBuilder 上传文件,并解决中文文件名乱码问题
  8. 修改element ui的table的某一列的样式
  9. 自动旁注并多进程调用wwwscan扫描旁注结果的python脚本。
  10. 使用Origin软件对数据进行指数拟合的方法
  11. 全球及中国石头纸行业发展动态与投资现状分析报告2022版
  12. macbook_我如何学会不再担心并热爱Macbook
  13. Java在手机平台上的Porting
  14. 溶剂可及性(一):基本概念
  15. 使用WebUploader实现图片上传
  16. 怎么把cad的图导入ps_CAD图纸导入Photoshop的方法有哪些?
  17. 新一代网络技术与课程建设师资培训感悟
  18. 主数据治理项目前期调研
  19. ebs xml开发 html,EBS excel模板xml publisher开发
  20. PID优化系列之给定值斜坡函数(PLC代码+Simulink仿真测试)

热门文章

  1. 天堂2java gm设置_请教私服GM用什么命令调整服务器属性啊?
  2. 5G 和 WiFi-6,谁是智能制造的主角?
  3. const 定义数组问题
  4. LCD液晶显示器 ----------- 原理篇
  5. coreldraw sp2精简版 x4_coreldraw x4
  6. swift中代码生成纯色图片
  7. Swift语言中的控制语句和函数
  8. 基于内容的图片检索CBIR(Content Based Image Retrieval)简介
  9. python--format
  10. word表格标题和表格如何不分开