Windows 下启动tomcat
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
- @echo off
- if "%OS%" == "Windows_NT" setlocal
- rem ---------------------------------------------------------------------------
- rem Start script for the CATALINA Server
- rem
- rem $Id: startup.bat,v 1.6 2004/05/27 18:25:11 yoavs Exp $
- rem ---------------------------------------------------------------------------
- rem Guess CATALINA_HOME if not defined
- set CURRENT_DIR=%cd%
- if not "%CATALINA_HOME%" == "" goto gotHome
- set CATALINA_HOME=%CURRENT_DIR%
- if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
- cd ..
- set CATALINA_HOME=%cd%
- cd %CURRENT_DIR%
- :gotHome
- if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
- echo The CATALINA_HOME environment variable is not defined correctly
- echo This environment variable is needed to run this program
- goto end
- :okHome
- set EXECUTABLE=%CATALINA_HOME%/bin/catalina.bat
- rem Check that target executable exists
- if exist "%EXECUTABLE%" goto okExec
- echo Cannot find %EXECUTABLE%
- echo This file is needed to run this program
- goto end
- :okExec
- rem Get remaining unshifted command line arguments and save them in the
- set CMD_LINE_ARGS=
- :setArgs
- if ""%1""=="""" goto doneSetArgs
- set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
- shift
- goto setArgs
- :doneSetArgs
- call "%EXECUTABLE%" start %CMD_LINE_ARGS%
- :end
第一段,内容如下,先设置好变量CATALINA_HOME,然后判断是否存在脚本文件"%CATALINA_HOME%/bin/catalina.bat",如果找不到该文件,那么退出脚本的执行,提示设置CATALINA_HOME环境变量,这就是我们在安装tomcat后,要设置环境变量CATALINA_HOME的原因。
[csharp] view plain copy
- @echo off
- if "%OS%" == "Windows_NT" setlocal
- rem ---------------------------------------------------------------------------
- rem Start script for the CATALINA Server
- rem
- rem $Id: startup.bat,v 1.6 2004/05/27 18:25:11 yoavs Exp $
- rem ---------------------------------------------------------------------------
- rem Guess CATALINA_HOME if not defined
- set CURRENT_DIR=%cd%
- if not "%CATALINA_HOME%" == "" goto gotHome
- set CATALINA_HOME=%CURRENT_DIR%
- if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
- cd ..
- set CATALINA_HOME=%cd%
- cd %CURRENT_DIR%
- :gotHome
- if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
- echo The CATALINA_HOME environment variable is not defined correctly
- echo This environment variable is needed to run this program
- goto end
- :okHome
- set EXECUTABLE=%CATALINA_HOME%/bin/catalina.bat
[csharp] view plain copy第二段,内容如下,用EXECUTABLE脚本指向的脚本文件,执行启动命令,传入参数start,既进入启动脚本catalina.bat的执行。
[html] view plain copy
- rem Check that target executable exists
- if exist "%EXECUTABLE%" goto okExec
- echo Cannot find %EXECUTABLE%
- echo This file is needed to run this program
- goto end
- :okExec
- rem Get remaining unshifted command line arguments and save them in the
- set CMD_LINE_ARGS=
- :setArgs
- if ""%1""=="""" goto doneSetArgs
- set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
- shift
- goto setArgs
- :doneSetArgs
- call "%EXECUTABLE%" start %CMD_LINE_ARGS%
- :end
catalina.bat内容如下:
[html] view plain copy
- @echo off
- if "%OS%" == "Windows_NT" setlocal
- rem ---------------------------------------------------------------------------
- rem Start/Stop Script for the CATALINA Server
- rem
- rem Environment Variable Prequisites
- rem
- rem CATALINA_HOME May point at your Catalina "build" directory.
- rem
- rem CATALINA_BASE (Optional) Base directory for resolving dynamic portions
- rem of a Catalina installation. If not present, resolves to
- rem the same directory that CATALINA_HOME points to.
- rem
- rem CATALINA_OPTS (Optional) Java runtime options used when the "start",
- rem "stop", or "run" command is executed.
- rem
- rem CATALINA_TMPDIR (Optional) Directory path location of temporary directory
- rem the JVM should use (java.io.tmpdir). Defaults to
- rem %CATALINA_BASE%/temp.
- rem
- rem JAVA_HOME Must point at your Java Development Kit installation.
- rem
- rem JAVA_OPTS (Optional) Java runtime options used when the "start",
- rem "stop", or "run" command is executed.
- rem
- rem JSSE_HOME (Optional) May point at your Java Secure Sockets Extension
- rem (JSSE) installation, whose JAR files will be added to the
- rem system class path used to start Tomcat.
- rem
- rem JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"
- rem command is executed. The default is "dt_shmem".
- rem
- rem JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start"
- rem command is executed. The default is "jdbconn".
- rem
- rem $Id: catalina.bat,v 1.9.2.2 2004/09/23 20:17:14 yoavs Exp $
- rem ---------------------------------------------------------------------------
- rem Guess CATALINA_HOME if not defined
- set CURRENT_DIR=%cd%
- if not "%CATALINA_HOME%" == "" goto gotHome
- set CATALINA_HOME=%CURRENT_DIR%
- if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
- cd ..
- set CATALINA_HOME=%cd%
- cd %CURRENT_DIR%
- :gotHome
- if exist "%CATALINA_HOME%/bin/catalina.bat" goto okHome
- echo The CATALINA_HOME environment variable is not defined correctly
- echo This environment variable is needed to run this program
- goto end
- :okHome
- rem Get standard environment variables
- if exist "%CATALINA_HOME%/bin/setenv.bat" call "%CATALINA_HOME%/bin/setenv.bat"
- rem Get standard Java environment variables
- if exist "%CATALINA_HOME%/bin/setclasspath.bat" goto okSetclasspath
- echo Cannot find %CATALINA_HOME%/bin/setclasspath.bat
- echo This file is needed to run this program
- goto end
- :okSetclasspath
- set BASEDIR=%CATALINA_HOME%
- call "%CATALINA_HOME%/bin/setclasspath.bat"
- rem Add on extra jar files to CLASSPATH
- if "%JSSE_HOME%" == "" goto noJsse
- set CLASSPATH=%CLASSPATH%;%JSSE_HOME%/lib/jcert.jar;%JSSE_HOME%/lib/jnet.jar;%JSSE_HOME%/lib/jsse.jar
- :noJsse
- set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%/bin/bootstrap.jar
- if not "%CATALINA_BASE%" == "" goto gotBase
- set CATALINA_BASE=%CATALINA_HOME%
- :gotBase
- if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
- set CATALINA_TMPDIR=%CATALINA_BASE%/temp
- :gotTmpdir
- rem ----- Execute The Requested Command ---------------------------------------
- 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 _EXECJAVA=%_RUNJAVA%
- set MAINCLASS=org.apache.catalina.startup.Bootstrap
- set ACTION=start
- set SECURITY_POLICY_FILE=
- set DEBUG_OPTS=
- set JPDA=
- if not ""%1"" == ""jpda"" goto noJpda
- set JPDA=jpda
- if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
- set JPDA_TRANSPORT=dt_shmem
- :gotJpdaTransport
- if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
- set JPDA_ADDRESS=jdbconn
- :gotJpdaAddress
- shift
- :noJpda
- if ""%1"" == ""debug"" goto doDebug
- if ""%1"" == ""run"" goto doRun
- if ""%1"" == ""start"" goto doStart
- if ""%1"" == ""stop"" goto doStop
- if ""%1"" == ""version"" goto doVersion
- echo Usage: catalina ( commands ... )
- echo commands:
- echo debug Start Catalina in a debugger
- echo debug -security Debug Catalina with a security manager
- echo jpda start Start Catalina under JPDA debugger
- echo run Start Catalina in the current window
- echo run -security Start in the current window with security manager
- echo start Start Catalina in a separate window
- echo start -security Start in a separate window with security manager
- echo stop Stop Catalina
- echo version What version of tomcat are you running?
- goto end
- :doDebug
- shift
- set _EXECJAVA=%_RUNJDB%
- set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%/../../jakarta-tomcat-catalina/catalina/src/share"
- if not ""%1"" == ""-security"" goto execCmd
- shift
- echo Using Security Manager
- set SECURITY_POLICY_FILE=%CATALINA_BASE%/conf/catalina.policy
- goto execCmd
- :doRun
- shift
- if not ""%1"" == ""-security"" goto execCmd
- shift
- echo Using Security Manager
- set SECURITY_POLICY_FILE=%CATALINA_BASE%/conf/catalina.policy
- goto execCmd
- :doStart
- shift
- if not "%OS%" == "Windows_NT" goto noTitle
- set _EXECJAVA=start "Tomcat" %_RUNJAVA%
- goto gotTitle
- :noTitle
- set _EXECJAVA=start %_RUNJAVA%
- :gotTitle
- if not ""%1"" == ""-security"" goto execCmd
- shift
- echo Using Security Manager
- set SECURITY_POLICY_FILE=%CATALINA_BASE%/conf/catalina.policy
- goto execCmd
- :doStop
- shift
- set ACTION=stop
- goto execCmd
- :doVersion
- %_EXECJAVA% -classpath "%CATALINA_HOME%/server/lib/catalina.jar" org.apache.catalina.util.ServerInfo
- goto end
- :execCmd
- rem Get remaining unshifted command line arguments and save them in the
- set CMD_LINE_ARGS=
- :setArgs
- if ""%1""=="""" goto doneSetArgs
- set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
- shift
- goto setArgs
- :doneSetArgs
- rem Execute Java with the applicable properties
- if not "%JPDA%" == "" goto doJpda
- if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
- %_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%
- goto end
- :doSecurity
- %_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%
- goto end
- :doJpda
- if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
- %_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%
- goto end
- :doSecurityJpda
- %_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%
- goto end
- :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相关推荐
- tomcat7修改内存 win_详解Windows下调整Tomcat启动参数的实现方法
Windows下调整Tomcat启动参数 Tomcat默认可以使用的内存为128MB,对于访问数比较多.比较吃内存的应用来说,这是不够的.我们可以通过调整Java虚拟机的启动参数来增加Tomcat可使 ...
- windows下整合tomcat和nginx
tomcat自带的apache服务器对于并发请求的处理能力比较差,并且耗费资源很大,而nginx这方便却很强悍,以下是在windows下整合tomcat和nginx的过程. 1.准备工作 下载to ...
- Windows下Apache Tomcat?的下载安装和使用
本文将给出在windows下Apache Tomcat的下载安装和使用的简易教程. 前往Tomcat的官网http://tomcat.apache.org/.如下图所示: 在上图左侧红色方框中选择版本 ...
- Windows下搭建Tomcat集群的配置详解
< Windows下搭建Tomcat集群基础入门详解 > 前言 在搭建 < Apache + Tomcat 实现Web服务器集群 > 前我们还需要实现 Tomcat集群实现Se ...
- Mac下启动tomcat
习惯了Windows下的tomcat启动,切换到Mac下,简直心里有一万个草泥马... 记录下过程: 1.访问Apache官网,下载对应的tomcat 版本,一般选择tar格式: 2.解压文件,命令也 ...
- jsp+php 服务器环境,Windows下Apache+Tomcat+jsp+php的服务器整合配置
具体配置参照 Windows下Apache+Tomcat+jsp+php的服务器整合配置出现Service Unavailable错误 Service Unavailable The server i ...
- 关于Windows下关闭tomcat
关于Windows下关闭tomcat 首先要知道tomcat的端口(大部分都是8080端口)不清楚的可以去到conf文件夹下的server.xml文件找到端口!!! 关闭tomcat可以使用命令行cm ...
- tomcat环境配置以及cmd下启动tomcat
下载tomcat 进入tomcat官网选择版本 tomcat环境变量 在系统变量中新建下面俩个变量 CATALINA_BASE tomcat安装目录D:\tomcat CATALINA_HOM ...
- Linux 和Windows 下启动 关闭 Redis 服务
1.linux 下启动 关闭 redis 找到redis的根目录,可用如下指令 whereis redis 找到redis的根目录 进入 .进入后发现只有conf文件没有server文件(*启动时需要 ...
最新文章
- qdockwidget设置隐藏标题栏,重叠时tab标签位置,自动填充满整个窗口
- Python爬虫入门(7):正则表达式
- 等式成立JAVA_java – 找到两个线性等式成立的整数集
- 《统计学习方法》P74勘误
- 在VC6中使用ADO读取Oracle中的BLOB字段
- windows、Linux下nginx搭建集群
- 使用HttpClient MultipartEntityBuilder 上传文件,并解决中文文件名乱码问题
- 修改element ui的table的某一列的样式
- 自动旁注并多进程调用wwwscan扫描旁注结果的python脚本。
- 使用Origin软件对数据进行指数拟合的方法
- 全球及中国石头纸行业发展动态与投资现状分析报告2022版
- macbook_我如何学会不再担心并热爱Macbook
- Java在手机平台上的Porting
- 溶剂可及性(一):基本概念
- 使用WebUploader实现图片上传
- 怎么把cad的图导入ps_CAD图纸导入Photoshop的方法有哪些?
- 新一代网络技术与课程建设师资培训感悟
- 主数据治理项目前期调研
- ebs xml开发 html,EBS excel模板xml publisher开发
- PID优化系列之给定值斜坡函数(PLC代码+Simulink仿真测试)