Tomcat的bin目錄下startup.bat、Tomcat6.exe、Tomcat6w.exe區別


    從官方下載了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
這樣問題就解決了!
 
 
 
 
 
三、tomcat6.exe與tomcat6w.exe的區別:
 
  把tomcat6.exe安裝成服務后,雙擊 tomcat6w.exe,彈出可視化tomcat服務控制台,進而可以輕松控制tomcat服務。
 
 
 
 

如果未安裝tomcat為服務的話,雙擊tomcat6w.exe 彈出個錯誤對話框,說“指定的服務並未以安裝的服務存在。Unable to open the service tomcat6”,如下圖:


 

原因其實是這兩個文件要起作用,必須先為這個tomcat安裝服務。

注:tomcat6.exe 這個文件是用來啟動tomcat的,tomcat6w.exe是管理tomcat服務的。

具體安裝方法:打開命令行提示符窗口

=> 進入Tomcat安裝目錄==> 進入bin目錄下==> 輸入:service.bat install  即可

直接到目錄點擊這個bat會不會也可以運行?經過驗證:不可以

 

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

具體安裝方法:打開命令行提示符窗口

=> 進入Tomcat安裝目錄==> 進入bin目錄下==> 輸入:service.bat remove tomcat服務名稱(如tomcat6) 即可。

 

本文參考了:

http://blog.csdn.net/kai_wei_zhang/article/details/7909907

http://woshiyu4039.iteye.com/blog/814635


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM