从官方下载了apache-tomcat-6.0.37-windows-x64.zip安装包,解压后bin目录下的startup.bat、Tomcat6.exe、Tomcat6w.exe 3个程序有何区别不是很了解。

一、tomcat6.exe与startup.bat的区别:

1、这两个都可以启动tomcat,但tomcat6.exe必须安装了服务才能启动,而startup.bat不需要

2、另外一个区别是它们启动所使用的JAVA环境配置是分开的

tomcat6.exe启动所使用JAVA配置与服务启动所使用的JAVA配置一样,都是通过tomcat6w.exe的JAVA面板配置(可以在创建服务前修改service.bat文件的JAVA_HOME变量来指定初始的JVM,

该JAVA面板的所有配置项都是从service.bat文件初始化的。)

startup.bat启动所使用的JAVA配置可以通过修改catalina.bat 与setclasspath.bat 文件里的JAVA_HOME与JRE_HOME变量来指定,也可以直接在电脑的高级属性里面添加

 

二、Tomcat6解压版的配置

情况:Tomcat解压后,启动bin目录的startup.bat正常,但是启动tomcat7.exe却启动不了,为什么?

 

1、设置环境变量

下载完成后,解压到D:\Tomcat6(设置你的路径),检查环境变量JAVA_HOME是否存在:一般JDK安装时会自动设置,如果没有就创建,JAVA_HOME的值设为JDK的安装根路径.

 

2、设置tomcat为服务

服务设置方法,也即是解决上面出现的情况,编辑 service.bat 文件

rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%

添加下面一句指定tomcat的安装目录。
set CATALINA_HOME=D:\apache-tomcat-7.0.29
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=%cd%

为了在“进程”中跟其他安装的tomcat区分名字,修改tomcat7.exe 的文件名。这里我仍然使用tomcat7.exe。

if exist "%CATALINA_HOME%\bin\tomcat7.exe" goto okHome
rem CD to the upper dir
cd ..
set CATALINA_HOME=%cd%
:gotHome
if exist "%CATALINA_HOME%\bin\tomcat6018.exe" goto okHome
echo The tomcat.exe was not found...
echo The CATALINA_HOME environment variable is not defined correctly.
echo This environment variable is needed to run this program
goto end
rem Make sure prerequisite environment variables are set
if not "%JAVA_HOME%" == "" goto okHome
echo The JAVA_HOME environment variable is not defined
echo This environment variable is needed to run this program
goto end 
:okHome
if not "%CATALINA_BASE%" == "" goto gotBase
set CATALINA_BASE=%CATALINA_HOME%
:gotBase
 
set EXECUTABLE=%CATALINA_HOME%\bin\tomcat6018.exe

rem Set default Service name

创建服务后的服务名称,这个名称必须唯一(解压目录里的tomcat7.exe,tomcat7w.exe的名字与此处对应)
set SERVICE_NAME=Tomcat7

创建服务后的服务显示名称,这个名称可以与其他服务显示名称相同。
set PR_DISPLAYNAME=Apache Tomcat 7

............ (中间省略)

"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;
-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" --JvmMs 128 --JvmMx 256

如果你需要把服务设置为开机自启动,可以加下面这句
sc config %SERVICE_NAME% start= auto
echo The service '%SERVICE_NAME%' has been installed.

:end
cd %CURRENT_DIR%

运行命令行cmd,可以只用services.msc命令查看当前的服务会发现还没有Apache Tomcat 7,

进入tomcat 的bin目录,执行service.bat install 安装服务

然后再使用services.msc查看服务就多了Apache Tomcat 7

这样问题就解决了!

aqMv6r

rIzyu2

三、tomcat6.exe与 tomcat6w.exe 的区别:

把tomcat6.exe安装成服务后,双击 tomcat6w.exe,弹出可视化tomcat服务控制台,进而可以轻松控制tomcat服务。
3aM32e

 

如果未安装tomcat为服务的话,双击tomcat6w.exe 弹出个错误对话框,说“指定的服务并未以安装的服务存在。Unable to open the service tomcat6”,如下图:

IZbIVv

原因其实是这两个文件要起作用,必须先为这个tomcat安装服务。

 

注: tomcat6.exe 这个文件是用来启动tomcat的,tomcat6w.exe是管理tomcat服务的。

 

具体安装方法:打开命令行提示符窗口

=> 进入Tomcat安装目录==> 进入bin目录下==> 输入:service.bat install 即可

直接到目录点击这个bat会不会也可以运行? 经过验证:不可以

 

如想移除tomcat服务,操作如下:

具体安装方法:打开命令行提示符窗口

=> 进入Tomcat安装目录==> 进入bin目录下==> 输入:service.bat remove tomcat服务名称(如tomcat6) 即可。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。