早期使用Tomcat的開發者都知道,運行Tomcat服務需要執行其bin目錄的startup.bat,在Windows系統平臺下,只要服務器重啟,就要啟動運行該文件,特別的麻煩,最近專門就這個問題,查閱了許多文檔,終于找到一個辦法,將其配置成Windows服務來運行,這樣網管管理服務器就再也不需要兼管應用的啟動了。
我使用的是Tomcat4.0.3,在Bin目錄有一個tomcat.exe文件,我就是用它來配置服務的。
運行tomcat.exe /?,會出現如下圖所示:

這說明該exe文件正式配置服務所用的。下面我提供一份用過的配置過程,供參考:
新建一個bat文件,setEnv.bat,內容如下:
set CLASSPATH=%CLASSPATH%;%1
再新建一個bat文件,setPath.bat,內容如下:
set jdk_home=F:\project\JDK140
set tomcat_home=F:\project\TOMCAT403
set applib=F:\project\webroot\WEB-INF\lib
set appclasses=F:\project\webroot\WEB-INF\classes
set appname=MY_WEB_APPLICATION
注意斜線部分是需要根據實際情況修改的。
?
再新建一個bat文件,命名install_WEB.bat。如下內容:
@echo off
?
set jdk_home=
set tomcat_home=
set applib=
set appclasses=
set classpath=
set appname=
?
call %CD%\setPath.cmd
?
set classpath=.;%classpath%;
set classpath=%appclasses%;%classpath%;
?
for %%1 in (%applib%\*.jar) do call %CD%\setEnv.cmd %%1
?
?
REM set huan jin bian liang
set classpath=%classpath%;%tomcat_home%\bin\bootstrap.jar
set classpath=%classpath%;%tomcat_home%\common\lib\servlet.jar
set classpath=%classpath%;%jdk_home%\lib\tools.jar
?
%tomcat_home%\bin\tomcat.exe -install %appname% %jdk_home%\jre\bin\server\jvm.dll -Djava.class.path=%classpath% -Dcatalina.home=%tomcat_home% -start org.apache.catalina.startup.Bootstrap -params start -stop org.apache.catalina.startup.Bootstrap -params stop -out %tomcat_home%\logs\stdout.log -err %tomcat_home%\logs\stderr.log
?
net start %appname%
?
goto eof
?
:err
@echo --------
@echo Usage:?? %0 jdk_home tomcat_home
@echo Example: %0 c:\progra~1\jdk c:\progra~1\tomcat
@echo Note: do not include spaces in directory paths
@echo --------
?
:eof
?
再新建一個bat文件,命名uninstall_WEB.bat,內容如下:
@echo off
?
set jdk_home=
set tomcat_home=
set applib=
set appname=
?
call %CD%\setPath.cmd
?
net stop "%appname%"
?
%tomcat_home%\bin\tomcat.exe -uninstall "%appname%"
?
再新建一個bat文件,命名restart_WEB.bat,內容如下:
@echo off
set jdk_home=
set tomcat_home=
set applib=
set appname=
call %CD%\setPath.cmd
net stop "%appname%"
net start "%appname%"
請注意,還需要修改Tomcat的配置文件,主要是conf里面的server.xml,我這里提供一個參考的。
<?xml version="1.0" encoding="UTF-8"?>
<!-- must set port, and the Server port must large than Connector port 1 -->
?
<Server debug="0" port="8081" shutdown="SHUTDOWN">
? <Service name="WEB_8080">
??? <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
??? </Connector>
??? <Engine reloadable="true" defaultHost="localhost" name="WEB_8080">
????? <Host name="localhost">
???<Context path="" docBase="F:/product/www/" debug="0" privileged="true">
????<Logger className="org.apache.catalina.logger.FileLogger" prefix="mjs_log." suffix=".txt" timestamp="true"/>
???</Context>
????? </Host>
??? </Engine>
? </Service>
</Server>
以上就是配置服務的過程,配好之后,運行install_WEB.bat即可啟動服務。快試試吧。