欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Tomcat啟動(dòng)分析(我們?yōu)槭裁匆渲肅ATALINA_HOME環(huán)境變量)

 更新時(shí)間:2016年09月07日 10:26:24   作者:十年半山  
本文主要介紹Tomcat啟動(dòng)分析的知識(shí),這里整理了相關(guān)資料及分析原因和如何實(shí)現(xiàn)的方法,有興趣的小伙伴可以參考下

    用文本編輯工具打開(kāi)用于啟動(dòng)Tomcat的批處理文件startup.bat,仔細(xì)閱讀。在這個(gè)文件中,首先判斷CATALINA_HOME環(huán)境變量是否為空,如果為空,就將當(dāng)前目錄設(shè)為CATALINA_HOME的值。接著判斷當(dāng)前目錄下是否存在bin\catalina.bat,如果文件不存在,將當(dāng)前目錄的父目錄設(shè)為CATALINA_HOME的值。根據(jù)筆者機(jī)器上Tomcat安裝目錄的層次結(jié)構(gòu),最后CATALINA_HOME的值被設(shè)為Tomcat的安裝目錄。如果環(huán)境變量CATALINA_HOME已經(jīng)存在,則通過(guò)這個(gè)環(huán)境變量調(diào)用bin目錄下的“catalina.bat start”命令。通過(guò)這段分析,我們了解到兩個(gè)信息,一是Tomcat啟動(dòng)時(shí),需要查找CATALINA_HOME這個(gè)環(huán)境變量,如果在Tomcat的bin目錄下調(diào)用startup.bat,Tomcat會(huì)自動(dòng)并正確設(shè)置CATALINA_HOME;二是執(zhí)行startup.bat命令,實(shí)際上執(zhí)行的是“catalina.bat start”命令。

如果我們不是在Tomcat的bin目錄作為當(dāng)前目錄時(shí)調(diào)用startup.bat,就會(huì)出現(xiàn)如下圖所示的錯(cuò)誤信息(在bin目錄的父目錄下調(diào)用除外)。

 

圖    在其他目錄下啟動(dòng)Tomcat出錯(cuò)

如果要想在任意目錄下都能啟動(dòng)Tomcat,就需要設(shè)置CATALINA_HOME環(huán)境變量,你可以將CATALINA_HOME添加到Windows XP系統(tǒng)的環(huán)境變量中,其值就是Tomcat的安裝目錄。在筆者的機(jī)器上,Tomcat的安裝目錄是D:\apache-tomcat-6.0.36-windows-x86\apache-tomcat-6.0.36。添加CATALINA_HOME環(huán)境變量的過(guò)程和前述添加JAVA_HOME環(huán)境變量的過(guò)程是一樣的。如果你不想在系統(tǒng)的環(huán)境變量中添加,也可以直接在startup.bat文件中進(jìn)行設(shè)置。下面是在startup.bat文件中設(shè)置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 ..

...

注意以粗體顯示的這句代碼的作用就是設(shè)置CATALINA_HOME環(huán)境變量,在它的下面是判斷CATALINA_HOME是否為空的語(yǔ)句。如果找不準(zhǔn)位置,干脆將設(shè)置CATALINA_HOME環(huán)境變量的這句代碼放到文件的第一行。JAVA_HOME環(huán)境變量也可以采用同樣的方式進(jìn)行設(shè)置。不過(guò),如果要在其他目錄下利用shutdown.bat來(lái)關(guān)閉Tomcat服務(wù)器,則需要在shutdown.bat文件中設(shè)置CATALINA_HOME和JAVA_HOME這兩個(gè)環(huán)境變量,設(shè)置變量的位置和startup.bat文件一樣,都是在判斷CATALINA_HOME是否為空之前。當(dāng)然,為了一勞永逸,避免重裝Tomcat后還要進(jìn)行設(shè)置(需要是同一版本的Tomcat安裝在同一位置),我們最好還是將CATALINA_HOME和JAVA_HOME這兩個(gè)環(huán)境變量添加到Windows XP系統(tǒng)的環(huán)境變量中。

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

在Windows系統(tǒng)下環(huán)境變量的名字是與大小寫無(wú)關(guān)的,也就是說(shuō),JAVA_HOME和java_home是一樣的。

了解了startup.bat文件以后,我們?cè)賮?lái)看看真正負(fù)責(zé)啟動(dòng)Tomcat服務(wù)器的catalina.bat文件。通過(guò)分析catalina.bat文件,我們發(fā)現(xiàn)它還調(diào)用了一個(gè)文件setclasspath.bat。在setclasspath.bat文件中,它檢查JAVA_HOME環(huán)境變量是否存在,并通過(guò)JAVA_HOME環(huán)境變量,找到j(luò)ava.exe,用于啟動(dòng)Tomcat。在這個(gè)文件中,還設(shè)置了其他的一些變量,代表調(diào)用Java的標(biāo)準(zhǔn)命令,有興趣的讀者可以自行分析一下這個(gè)文件。在執(zhí)行完setclasspath.bat之后,catalina.bat剩下的部分就開(kāi)始了Tomcat服務(wù)器的啟動(dòng)進(jìn)程。

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

(點(diǎn)擊查看大圖)圖     catalina.bat的各參數(shù)信息

其中常用的參數(shù)是start、run和stop。參數(shù)start表示在一個(gè)單獨(dú)的窗口中啟動(dòng)Tomcat服務(wù)器,參數(shù)run表示在當(dāng)前窗口中啟動(dòng)Tomcat服務(wù)器;參數(shù)stop表示關(guān)閉Tomcat服務(wù)器。我們執(zhí)行startup.bat,實(shí)際上執(zhí)行的就是“catalina.bat start”命令;執(zhí)行shutdown.bat,實(shí)際上執(zhí)行的是“catalina.bat stop”命令?!癱atalina.bat run”命令有時(shí)候是非常有用的,特別是當(dāng)我們需要查看Tomcat的出錯(cuò)信息時(shí)。

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

以上就對(duì)Tomcat 啟動(dòng)分析做的資料整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)資料,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • JAVA讀取文件流,設(shè)置瀏覽器下載或直接預(yù)覽操作

    JAVA讀取文件流,設(shè)置瀏覽器下載或直接預(yù)覽操作

    這篇文章主要介紹了JAVA讀取文件流,設(shè)置瀏覽器下載或直接預(yù)覽操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Java數(shù)組傳遞及可變參數(shù)操作實(shí)例詳解

    Java數(shù)組傳遞及可變參數(shù)操作實(shí)例詳解

    這篇文章主要介紹了Java數(shù)組傳遞及可變參數(shù)操作,結(jié)合實(shí)例形式詳細(xì)分析了java數(shù)組參數(shù)傳遞與可變參數(shù)相關(guān)使用技巧,需要的朋友可以參考下
    2019-09-09
  • 如何把VS Code打造成Java開(kāi)發(fā)IDE

    如何把VS Code打造成Java開(kāi)發(fā)IDE

    這篇文章主要介紹了如何把VS Code打造成Java開(kāi)發(fā)IDE,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • JavaWeb 實(shí)現(xiàn)驗(yàn)證碼功能(demo)

    JavaWeb 實(shí)現(xiàn)驗(yàn)證碼功能(demo)

    在 WEB-APP 中一般應(yīng)用于:登錄、注冊(cè)、買某票、秒殺等場(chǎng)景,大家都接觸過(guò)這個(gè)驗(yàn)證碼操作,今天小編通過(guò)實(shí)例代碼給大家講解javaweb實(shí)現(xiàn)驗(yàn)證碼功能,需要的朋友參考下
    2017-02-02
  • java實(shí)現(xiàn)微信公眾平臺(tái)發(fā)送模板消息的示例代碼

    java實(shí)現(xiàn)微信公眾平臺(tái)發(fā)送模板消息的示例代碼

    這篇文章主要介紹了java實(shí)現(xiàn)微信公眾平臺(tái)發(fā)送模板消息的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java+Selenium實(shí)現(xiàn)控制瀏覽器的啟動(dòng)選項(xiàng)Options

    Java+Selenium實(shí)現(xiàn)控制瀏覽器的啟動(dòng)選項(xiàng)Options

    這篇文章主要為大家詳細(xì)介紹了如何使用java代碼利用selenium控制瀏覽器的啟動(dòng)選項(xiàng)Options的代碼操作,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-01-01
  • Java字符串的壓縮與解壓縮的兩種方法

    Java字符串的壓縮與解壓縮的兩種方法

    這篇文章主要介紹了Java字符串的壓縮與解壓縮的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Mybatis?如何開(kāi)啟控制臺(tái)打印sql語(yǔ)句

    Mybatis?如何開(kāi)啟控制臺(tái)打印sql語(yǔ)句

    這篇文章主要介紹了Mybatis?如何開(kāi)啟控制臺(tái)打印sql語(yǔ)句問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • SpringBoot+MDC實(shí)現(xiàn)鏈路調(diào)用日志的方法

    SpringBoot+MDC實(shí)現(xiàn)鏈路調(diào)用日志的方法

    MDC是 log4j 、logback及l(fā)og4j2 提供的一種方便在多線程條件下記錄日志的功能,這篇文章主要介紹了SpringBoot+MDC實(shí)現(xiàn)鏈路調(diào)用日志,需要的朋友可以參考下
    2022-12-12
  • 淺談Java 并發(fā)的底層實(shí)現(xiàn)

    淺談Java 并發(fā)的底層實(shí)現(xiàn)

    這篇文章主要介紹了淺談Java 并發(fā)的底層實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12

最新評(píng)論