免安装部署版的Tomcat注册为windows系统服务
1. 首先检查系统是不是之前有安装过之前的版本的tomcat,如果有的话,请将其删除,删除的办法是,到windows的控制面板--->计算机管理--->服务?
在服务列表里查看有没有Apache 或tomcat相关的服务,?
如果有的话,请在上面点鼠标右键--->属性,记下此服务的名称,假如为Tomcat6?
此时进入windows的命令行,开始菜单--->运行--->cmd?
在命令行里输入?
sc delete Tomcat6?
此时就能删除。上面一行命令行的Tomcat6就是系统服务里的属性名称?
2. 注册新服务?
在命令行里进入到下载的免安装版的tomcat目录下的bin目录?
在此bin目录下运行?
service.bat install?
此时就能把免安装版的tomcat注册为系统服务,?
你再到windows的控制面板--->计算机管理--->服务,在服务列表里就能看到你刚新加的服务?
其实上面说了这么多,原理很简单,下面把这个基本原理讲一下,?
Tomcat/bin目录下自带了一个service.bat文件,我们执行的就是这个bat文件,?
打开service.bat文件,你会发现以下代码,重要代码用红色标记:?
set EXECUTABLE=%CATALINA_HOME%\bin\tomcat5.exe?
rem Set default Service name?
set SERVICE_NAME=Tomcat5?
set PR_DISPLAYNAME=Apache Tomcat?
if "%1" == "" goto displayUsage?
if "%2" == "" goto setServiceName?
set SERVICE_NAME=%2?
set PR_DISPLAYNAME=Apache Tomcat %2?
:setServiceName?
if %1 == install goto doInstall?
if %1 == remove goto doRemove?
if %1 == uninstall goto doRemove?
echo Unknown parameter "%1"?
:displayUsage?
echo.?
echo Usage: service.bat install/remove [service_name]?
goto end?
:doRemove?
rem Remove the service?
"%EXECUTABLE%" //DS//%SERVICE_NAME%?
echo The service '%SERVICE_NAME%' has been removed?
goto end?
:doInstall?
rem Install the service?
echo Installing the service '%SERVICE_NAME%' ...?
echo Using CATALINA_HOME:??? %CATALINA_HOME%?
echo Using CATALINA_BASE:??? %CATALINA_BASE%?
echo Using JAVA_HOME:??????? %JAVA_HOME%?
1.红色代码1:?
set SERVICE_NAME=Tomcat5?
set PR_DISPLAYNAME=Apache Tomcat?
如果把tomcat设成服务成功后,就要会系统服务里面看到,服务名就是在这里设的?
你如果改一下服务名的话,可以把上面的SERVICE_NAME,PR_DISPLAYNAME的值换掉。?
2.红色代码2:?
:doRemove和:doInstall这段代码就相当于这个bat文件有两个方法,一个叫doRemove,一个doInstall,看名字很好理解,doInstall就表示安装服务,doRemove表示删除服务?
3.红色代码3:?
if %1 == install goto doInstall?
if %1 == remove goto doRemove?
if %1 == uninstall goto doRemove?
但是我有在cmd命令行里却用的是:?
service.bat install?
是如何映射的呢??
主要是通过如下代码来实现通过上面可以看到,%1就表示我们在service.bat install输入的第一个参数就是install,也就是%1=install,发现if %1 == install goto doInstall?
于是就执行doInstall方法,安装服务到系统,?
同样删除服务,一个最简单的方法就是:?
service.bat remove?
或?
service.bat uninstall?