1. 程式人生 > >Tomcat啟動分析(我們為什麼要配置CATALINA_HOME環境變數)

Tomcat啟動分析(我們為什麼要配置CATALINA_HOME環境變數)

原文地址:http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html

用文字編輯工具開啟用於啟動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出錯

如果要想在任意目錄下都能啟動Tomcat,就需要設定CATALINA_HOME環境變數,你可以將CATALINA_HOME新增到Windows XP系統的環境變數中,其值就是Tomcat的安裝目錄。在筆者的機器上,Tomcat的安裝目錄是D:\apache-tomcat-6.0.36-windows-x86\apache-tomcat-6.0.36。新增CATALINA_HOME環境變數的過程和前述新增JAVA_HOME環境變數的過程是一樣的。如果你不想在系統的環境變數中新增,也可以直接在startup.bat檔案中進行設定。下面是在startup.bat檔案中設定CATALINA_HOME後的檔案片段:

rem $Id: startup.bat 908749 2010-02-10 23:26:42Z markt $
rem ---------------------------------------------------------------------------

set CATALINA_HOME=D:\apache-tomcat-6.0.36-windows-x86\apache-tomcat-6.0.36

rem Guess CATALINA_HOME if not defined
set "CURRENT_DIR=%cd%"
if not "%CATALINA_HOME%" == "" goto gotHome
set "CATALINA_HOME=%CURRENT_DIR%"
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
cd ..

...

注意以粗體顯示的這句程式碼的作用就是設定CATALINA_HOME環境變數,在它的下面是判斷CATALINA_HOME是否為空的語句。如果找不準位置,乾脆將設定CATALINA_HOME環境變數的這句程式碼放到檔案的第一行。JAVA_HOME環境變數也可以採用同樣的方式進行設定。不過,如果要在其他目錄下利用shutdown.bat來關閉Tomcat伺服器,則需要在shutdown.bat檔案中設定CATALINA_HOME和JAVA_HOME這兩個環境變數,設定變數的位置和startup.bat檔案一樣,都是在判斷CATALINA_HOME是否為空之前。當然,為了一勞永逸,避免重灌Tomcat後還要進行設定(需要是同一版本的Tomcat安裝在同一位置),我們最好還是將CATALINA_HOME和JAVA_HOME這兩個環境變數新增到Windows XP系統的環境變數中。

有的讀者可能會對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是一樣的。

瞭解了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命令的各種引數及其含義,如下圖所示。

技術分享

(點選檢視大圖)圖     catalina.bat的各引數資訊

其中常用的引數是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伺服器異常終止,但是在當前的命令提示符視窗下仍然保留了啟動時的出錯資訊,這樣我們就可以查詢啟動失敗的原因了。

     本文轉自孫鑫的《Servlet/JSP深入詳解:基於Tomcat的Web開發》

相關推薦

Tomcat啟動分析(我們為什麼配置CATALINA_HOME環境變數

原文地址:http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html 用文字編輯工具開啟用於啟動Tomcat的批處理檔案startup.bat,仔細閱讀。在這個檔案中,首先判斷CATALIN

雲伺服器Ubuntu在/etc/profile配置完jdk每次都source才能使用java命令(配置永久環境變數

問題:今天一開啟Ubuntu,輸入 java -version 時,發現如下:減肥藥反彈了!!!   預備知識:在Ubuntu中其實是有幾個profile這樣的檔案存在的,我們通常將環境變數設定在/etc/profile這個檔案中,這個檔案是全域性的。 /etc/prof

linux 在/etc/profile配置完jdk每次都source才能使用java命令(配置永久環境變數

linux每次進入都需要 source /etc/profile才能使用java命令,需要配置永久環境變數,修改etc目錄下的bashrc檔案,在最前面新增export JAVA_HOME=/usr/l

jenkins全域性工具配置環境變數

1. 操作環境 1. Windows: win10 2. Jenkins Jenkins 2.75 3. Java JDK_1.8.0_64bit.exe 4. Tomcat apache-tomcat-8.0.11

tomcat配置指定啟動jdk版本,不依賴環境變數

1.windows下 開啟tomcat解壓目錄下的\bin\setclasspath.bat檔案,在指令碼開始新增下面兩行設定 set JAVA_HOME=D:\Program Files\Java\jdk8\jdk1.8.0_50 set JRE_HOME=D:\Program Files\Jav

直接啟動tomcat時為tomcat指定JDK 而不是讀取環境變數中的配置

第一種: 在windows環境下以批處理檔案方式啟動tomcat,只要執行<CATALINA_HOME>/bin/startup.bat這個檔案,就可以啟動Tomcat。在啟動時,startup.bat會呼叫catalina.bat檔案,而catalina.b

Tomcat啟動分析(轉自:http://docs.huihoo.com/apache/tomcat/heavyz/01-startup.html

接受 inf ultimate database -a htm ble 配置 https Tomcat啟動分析 1 - Tomcat Server的組成部分 1.1 - Server A Server element represents the entire Catali

TOMCAT啟動時報錯:the CATALINA_HOME environment variable is not defined correctly

步驟一:新增CATALINA_HOME環境變數,變數值同TOMCAT_HOME 步驟二:檢查CATALINA_HOME,JAVA_HOME,TOMCAT_HOME的變數值後邊有沒有分號(;)有的話刪除 此時啟動TOMCAT應該會成功,但在瀏覽器位址列中輸入http://localhost:8

linux中/etc/profile中配置環境變數,但是程式還是無法直接啟動

   安裝配置了Hive程式,正常可以啟動,也在/etc/profile中配置了環境變數,但是直接命令列hive啟動失敗 1./etc/profile中的部分配置資訊: export HIVE_HOME=/opt/modules/hive-0.13.1-c

Mac 每次都執行source ~/.bash_profile 才能使配置環境變數或者別名生效

在 ~/.bash_profile 中配置了環境變數, 可是每次重啟終端或者開啟新的命令視窗後,配置的環境變數就會失效.需要重新執行 : $source ~/.bash_profile,才能重新生效。 原因是:自己安裝了zsh,zsh載入的是 ~/.zshrc檔案,而 ‘.zshrc

Linux虛擬機器Ubuntu+配置JAVA環境變數+安裝Tomcat

下載tar.gz的安裝包 解壓縮檔案:tar xzvf apache-tomcat-9.0.10.tar.gz #解壓tar.gz, (如果壓縮檔案為.tar檔案,則 tar -xvf file.tar,如果壓縮檔案為tar.bz2檔案,則 tar -xjvf file.tar.bz2) 刪除壓縮包

Tomcat啟動一閃而過--JRE-HOME配置

1、啟動Tomcat的步驟: 到Tomcat的bin目錄下,執行startup.bat命令;即可將Tomcat暫停,然後檢視問題 2、若是這樣的錯誤或者 the JAVA_HOME envir

tomcat啟動不起來的配置

我們在下載完Tomcat 無法啟動Tomcat  1 首先安裝JDK和JRE 2 在環境變數裡面配置JAVA_HOME和JRE_HOME JAVA_HOME:  C:\Program Files\Ja

詳細:Liunx中配置java環境變數以及tomcat環境變數

Jdk1.8安裝: 需要下載xftp5 ,建立一個會話,連線Ip –這裡很簡單,不多說。仔細看圖 使用xftp5 檔案傳輸。*直接拖動就可以(例如:把jd

win10系統配置Jdk環境變數不生效,eclipse不能啟動

                 win10在配置環境變數,網上有很多,在我們配置過發現eclipse不能啟動,解決方法如果win10的使用者名稱不是英文,會導致eclipse不能啟動,如果修改後發現仍不能啟動,將系統重做,在做系統出現輸入使用者名稱時,輸入英文,可解決 

Mac 每次都執行source ~/.bash_profile 配置環境變數才生效

自己在 ~/.bash_profile 中配置環境變數, 可是每次重啟終端後配置的不生效.需要重新執行 : $source ~/.bash_profile 發現zsh載入的是 ~/.zshrc檔案,而 ‘.zshrc’ 檔案中並沒有定義任務環境變數。

tomcat啟動,但是spring配置的bean並沒有初始化

今天在做一個spring配置定時器的任務時,發現定時器並沒有啟動。 但是所有的定時器spring的配置程式碼是毫無錯誤的:  <bean id="timerBeanId" class="timerBean">               </bean&g

Windows10下配置JDK環境變數

安裝JDK之後配置環境變數的步驟如下: 1.點“此電腦”,右鍵選“屬性”。 2.選擇“高階系統設定”—>選“環境變數”—>在“系統變數”中選中“Path”,再點“編輯”—>再點“編輯文字”。 3.新建環境變數JAVA_HOME,如下截圖: 4、點選確定之後

配置maven環境變數cmd控制檯提示:mvn不是內部或外部命令,也不是可執行的程式或批處理檔案

下載Maven http://maven.apache.org/download.cgi 下載 apache-maven-x.x.x-.bin.zip ,下載後到硬碟 配置maven環境變數cmd控制檯提示:mvn不是內部或外部命令,也不是可執行的程式或批處理檔案 首先maven環境變數:

Linux 下 boost 庫的安裝,配置個人環境變數

部分引自: https://blog.csdn.net/this_capslock/article/details/47170313 1. 下載boost安裝包並解壓縮到http://www.boost.org/下載boost的安裝包,以boost_1_58_0.tar.gz為例 下載完成後進行解