最近在學習 張孝祥老師的Tomcat 視頻, 算是後知後覺了吧,爲了以後複習鞏固,我把一些要點記下來。
操作系統:win7 旗艦版 64位
Tomcat 版本:apache-tomcat-7.0.23-windows-x64.zip (直接加壓使用)
Tomcat 解壓目錄:D:\tomcat-7.0.23(“Tomcat 解壓目錄” 根據具體情況改變 )
一、 設置Tomcat 運行環境
Tomcat 運行需要設置JAVA_HOME 環境變量
JAVA_HOME 變量的設置方式有兩種:
方法1. 在“計算機” —— 右鍵點擊 “屬性” —— 點擊 “高級系統變量” —— 在 “高級”選項卡下 —— 點擊“ 環境變量” —— 在“系統變量” 下點擊“新建” 按鈕
輸入“變量名” :JAVA_HOME
輸入變量值:D:\jdk1.7.0_01 (這是我的JDK的安裝目錄)
然後一直點擊確定按鈕
方法2. 找到 D:\tomcat-7.0.23\bin 目錄 下的 startup.bat 批處理文件,用文本方式打開
在第一行代碼後面添加代碼 set JAVA_HOME=D:\jdk1.7.0_01
如下:
@echo offset JAVA_HOME=D:\jdk1.7.0_01二、環境變量測試:
運行cmd 下轉到 D:\tomcat-7.0.23\bin 目錄下運行 startup.bat
Tomcat 會彈出一個新的運行框,顯示巴拉巴拉一堆運行狀態回顯,如果回顯文字信息中沒有錯誤和警告,說明 Tomcat 啓動加載已經OK
瀏覽器運行:http://localhost:8080/ 彈出漂亮的 Tomcat 主頁面 說明Tomcat 運行成功
三、 startup.bat 批處理文件詳解
提示:我是在cmd中,轉到 D:\tomcat-7.0.23\bin 目錄下運行 startup.bat ,所以我的當前工作目錄爲:D:\tomcat-7.0.23\bin ,以此目錄爲例進行詳解
Tomcat 解壓目錄:D:\tomcat-7.0.23
@echo off //此行命令效果:只顯示下列命令執行結果,不顯示命令本身
if "%OS%" == "Windows_NT" setlocal //如果本機OS是windows_NT 則設置本機環境變量
rem Guess CATALINA_HOME if not defined //爲註釋代碼:判斷 CATALINA_HOME 環境變量是否已經配置
set "CURRENT_DIR=%cd%" //設置CURRENT_DIR 變量(當前工作目錄)爲:D:\tomcat-7.0.23\bin
if not "%CATALINA_HOME%" == "" goto gotHome //如果配置了 CATALINA_HOME 環境變量跳轉執行 gotHome
set "CATALINA_HOME=%CURRENT_DIR%" //如果沒有設置,則設置 CATALINA_HOME 變量爲:D:\tomcat-7.0.23\bin
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome //查看"當前工作目錄\bin" 目錄(即D:\tomcat-7.0.23\bin\bin)下是否存在catalina.bat 文件,如存在跳轉okHome
cd .. //回到上級子目錄,即:D:\tomcat-7.0.23 ,此時當前工作目錄已經更改爲:D:\tomcat-7.0.23
set "CATALINA_HOME=%cd%" // 更改 CATALINA_HOME 變量值爲:D:\tomcat-7.0.23
cd "%CURRENT_DIR%" //切換至當前工作目錄:D:\tomcat-7.0.23
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome //如果找得到 catalina.bat 批處理文件,則跳轉okHome
echo The CATALINA_HOME environment variable is not defined correctly //找不到catalina.bat文件,顯示錯誤信息,然後結束
echo This environment variable is needed to run this program //在cmd執行startup.bat的當前目錄不爲:“tomcat解壓目錄”和“tomcat解壓目錄\bin”時會提示此錯誤信息
goto end
//由此可見 catalina.bat 纔是真正的執行 Tomcat 啓動和關閉的批處理程序
//在執行startup.bat時,如果startup.bat 文件不在 ”Tomcat解壓目錄“或者“Tomcat解壓目錄\bin” 目錄下
//纔會提示CATALINA_HOME 錯誤信息
:okHome
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" //至此catalina.bat文件已經確定存在了,現在設置 EXECUTABLE (執行文件)環境變量
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec //如果EXECUTABLE 變量已經設置成功,跳轉okExec執行
echo Cannot find "%EXECUTABLE%" //否則提示找不到catalina.bat 執行文件
echo This file is needed to run this program
goto end
:okExec
rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS= //清除CMD_LINE_ARGS環境變量原來的值
:setArgs
if ""%1""=="""" goto doneSetArgs //如果第二個參數爲空跳轉doneSetArgs,即已經接完了傳入的參數
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 //給 CMD_LINE_ARGS 添加參數,並以空格隔開
shift //截掉第一個參數,使第二個參數變爲第一個參數
goto setArgs
// 以上5行代碼的作用就是將所有參數用空格間隔開,並賦值CMD_LINE_ARGS
:doneSetArgs
call "%EXECUTABLE%" start %CMD_LINE_ARGS% //打開新窗口,執行 EXECUTABLE 環境變量所代表的catalina.bat 批處理文件與 CMD_LINE_ARGS 代表的參數
:end //結束
總結:
1. startup.bat 的作用主要是檢查catalina.bat 執行所需環境,並調用catalina.bat 批處理文件
2. shutdown.bat 文件與 startup.bat 文件的內容只有一點不同,即倒數第二行代碼,通過修改執行參數 start 爲stop 並交由catalina.bat 執行實現Tomcat 的關閉功能
補充:
1. rem
代碼前面有 rem :所修飾的代碼是註釋說明文字
2. @
代碼前面有 @ :所修飾的代碼執行時,只顯示執行結果,不顯示命令本身