tomcat環境配置中CATALINA-HOME的作用


一、啟動分析

 用文本編輯工具打開用於啟動Tomcat的批處理文件startup.bat,仔細閱讀。在這個文件中,首先判斷CATALINA_HOME環境變量是否為空,如果為空,就將當前目錄設為CATALINA_HOME的值。接着判斷當前目錄下是否存在bin\catalina.bat,如果文件不存在,將當前目錄的父目錄設為CATALINA_HOME的值。根據筆者機器上Tomcat安裝目錄的層次結構,最后CATALINA_HOME的值被設為Tomcat的安裝目錄。如果環境變量CATALINA_HOME已經存在,則通過這個環境變量調用bin目錄下的“catalina.bat start”命令。通過這段分析,我們了解到兩個信息,一是Tomcat啟動時,需要查找CATALINA_HOME這個環境變量,如果在Tomcat的bin目錄下調用startup.bat,Tomcat會自動並正確設置CATALINA_HOME;二是執行startup.bat命令,實際上執行的是“catalina.bat start”命令。

 

如果我們不是在Tomcat的bin目錄作為當前目錄時調用startup.bat,就會出現如下圖所示的錯誤信息(在bin目錄的父目錄下調用除外)。

二、

 

如果要想在任意目錄下都能啟動Tomcat,就需要設置CATALINA_HOME環境變量,你可以將CATALINA_HOME添加到Windows10系統的環境變量中,其值就是Tomcat的安裝目錄。在筆者的機器上,Tomcat的安裝目錄是D:\tomcat9\apache-tomcat-9.0.10\bin

。添加CATALINA_HOME環境變量的過程和前述添加JAVA_HOME環境變量的過程是一樣的。如果你不想在系統的環境變量中添加,也可以直接在startup.bat文件中進行設置。下面是在startup.bat文件中設置CATALINA_HOME后的文件片段:

 避免重裝Tomcat后還要進行設置(需要是同一版本的Tomcat安裝在同一位置),我們最好還是將CATALINA_HOME和JAVA_HOME這兩個環境變量添加到Windows XP系統的環境變量中。

 

 

 

 

 

 

 

 

 三、Tomcat服務器的catalina.bat文件(啟動報錯用它查看)

有的讀者可能會對Tomcat安裝目錄的環境變量的名字是CATALINA_HOME而感到奇怪,按照其他環境變量的設置來看,JAVA_HOME表示JDK的安裝目錄,那么應該用TOMCAT_HOME來表示Tomcat的安裝目錄,可為什么要使用CATALINA_HOME呢?實際上,在Tomcat 4以前,用的就是TOMCAT_HOME來表示Tomcat的安裝目錄,在Tomcat 4以后,采用了新的Servlet容器Catalina,所以環境變量的名字也改為了CATALINA_HOME。

在Windows系統下環境變量的名字是與大小寫無關的,也就是說,JAVA_HOME和java_home是一樣的。

 

其中常用的參數是start、run和stop。參數start表示在一個單獨的窗口中啟動Tomcat服務器,參數run表示在當前窗口中啟動Tomcat服務器;參數stop表示關閉Tomcat服務器。我們執行startup.bat,實際上執行的就是“catalina.bat start”命令;執行shutdown.bat,實際上執行的是“catalina.bat stop”命令。“catalina.bat run”命令有時候是非常有用的,特別是當我們需要查看Tomcat的出錯信息時。

 

在開發JSP程序時,經常會碰到自己機器上的8080端口號被別的應用程序占用,或者在配置server.xml時出現錯誤,當通過startup.bat(相當於執行“catalina.bat start”)啟動Tomcat服務器時,如果啟動過程中出現嚴重錯誤,由於是在單獨的窗口中啟動Tomcat服務器,所以一旦啟動失敗,命令提示符窗口就自動關閉了,程序運行中輸出的出錯信息也隨之消失,而且沒有任何的日志信息,這就使得我們沒有辦法找出錯誤原因。當出現錯誤時,我們可以換成“catalina.bat run”命令再次啟動,一旦啟動失敗,僅僅是Tomcat服務器異常終止,但是在當前的命令提示符窗口下仍然保留了啟動時的出錯信息,這樣我們就可以查找啟動失敗的原因了。

 

了解了startup.bat文件以后,我們再來看看真正負責啟動Tomcat服務器的catalina.bat文件。通過分析catalina.bat文件,我們發現它還調用了一個文件setclasspath.bat。在setclasspath.bat文件中,它檢查JAVA_HOME環境變量是否存在,並通過JAVA_HOME環境變量,找到java.exe,用於啟動Tomcat。在這個文件中,還設置了其他的一些變量,代表調用Java的標准命令,有興趣的讀者可以自行分析一下這個文件。在執行完setclasspath.bat之后,catalina.bat剩下的部分就開始了Tomcat服務器的啟動進程。

 

 

 

直接執行catalina.bat時,需要帶上命令行的參數。讀者可以在命令提示符窗口下,執行catalina.bat,就會打印出catalina.bat命令的各種參數及其含義,如下圖所示。

 

運行成功

 

 

文章鏈接:https://blog.csdn.net/u014520047/article/details/81530670!!!!

文章鏈接:https://blog.csdn.net/u014520047/article/details/81530670


免責聲明!

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



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