在Windows平台上運行Tomcat


  從之前的學習中知道,可以調用Bootstrap類將Toomcat作為一個獨立的應用程序來運行,在Windows平台上,可以調用startup.bat批處理文件來啟動Tomcat,或運行shutdown.bat批處理文件來關閉Tomcat,這兩個批處理文件位於%CATALINA_HOME%/bin目錄下,下面將會對批處理腳本進行介紹,如果你對DOS命令不太熟悉,那么你需要認真閱讀下面的,如何編寫批處理文件這個段落,

如何編寫批處理文件

  下面將會對批處理文件進行介紹,這樣你才能理解用來啟動或者關閉Tomcat的批處理文件,會對 rem、if、 echo、goto、lable等命令進行介紹,當然,介紹的內容並不能涵蓋所欲偶的內容,

  首先批處理文件的后綴名必須為 .bat,可以從Windows Explorer 中雙擊一個批處理文件,也可以在DOS控制台中鍵入批處理文件的名字來調用它,調用批處理文件后,文件中的每一行命令都會被解釋,下面將會對Tomcat的批處理文件命令進行介紹。

  注意:DOS命令及環境變量是區分大小寫的,

  rem命令:該命令用於注釋,解釋器不會執行以rem命令開始的行

  pause:pause命令用於暫停正在執行的批處理文件,並提示用戶按某個鍵,然后程序會繼續執行。

  echo:該命令用於在DOS控制台上顯示一段文件,例如,下面的命令將在控制台上輸出 Hello Word,然后暫停程序,之所以暫停程序是為了能夠使控制台將輸出的文本顯示出來:  

echo Hello Word
pause

  如果想要顯示環境變量的值,需要在環境變量值的前后添加%,例如,下面的命令將輸出 變量 myVar的值

echo %myVar%

  如果想要輸出操作系統的名字,可以使用如下命令

echo %OS%

  echo off(

 #從下一行開始關閉回顯

  使用 echo off 可以防止將批處理文件中的具體命令輸出,而只會輸出執行結果,但是 echo off 命令本身還是會顯示出來,如果你想將 echo off 也隱藏起來,需要使用 @echo off 命令。

  @echo off 從本行開始關閉回顯

  該命令與 echo off 命令相似,但是它會鏈 echo off 命令 也隱藏起來

  set 

  set命令用來設置用戶定義或命名的環境變量,在批處理文件中設置的環境變量是臨時存儲在內存中的,在批處理文件執行完成后就會銷毀

  例如:下面的set命令 創建了一個名為 THE_KING的環境變量,將其值設置 為 Elvis ,並輸出到控制台上

set THE_KING=Elvis
echo %THE_KING%
pause

  label

  使用冒號設置一個標簽,然后可以將該標簽傳遞給goto命令,這樣程序就會跳轉到標簽指定的位置,下面的語句定義了一個名為 end 的標簽

:end

有關於標簽的更多例子請參見 對 goto 命令的介紹

  goto

  goto命令強制批處理文件跳轉到指定標簽所在的位置繼續執行,示例如下:

echo Start
goto end
echo I Can guarantee this line will not be executed
:end
echo End
pause

在第一行輸出了 Start 之后,批處理文件會執行goto 命令,跳轉到 end 標簽后的語句繼續執行,結果是 跳過了第三行內容,沒有執行它

 if

   if用來執行條件測試,有下面三種用法

  1. 測試變量的值
  2. 測試文件是否存在
  3. 測試錯誤值

使用下面的命令格式 來測試一個變量的值

if variable==value 

例如,下面的if語句將會測試變量myVar的值 是不是 3 ,如果是,則它在控制台輸出 Correct

set myVar=3
if  %myVar%==3 echo Correct

運行上面的命令時,會對變量myVar的值進行判斷,並輸出 Correct

可以使用下面的命令格式 來測試文件是否存在

if exist c:\temp\myFile.txt goto start

如果 在 c:\temp目錄下存在myFile.txt文件,程序就會跳轉 start標簽所在的位置繼續執行,也可以使用 not關鍵字來對一條 語句取反

not

not關鍵字用來對一條語句取反,例如,下面的命令在變量 myVar的值不是3時 輸出 Correct

set myVar=3
if not %myVae%==3 echo Correct
pause

當 c:\temp目錄下 不存在 myFile.txt文件時,下面的命令會跳轉到標簽end所在的位置繼續執行。

if not exist c:\temp\myFile.txt goto end

exist

  當測試文件是否存在時,會使用到 if 語句 和 exist命令,示例程序請參見  if 命令的例子

接收參數

  可以給批處理文件傳遞參數,並使用 %1 來引用第一個參數, %2 引用第二個參數,依次類推,例如:下面的命令將在控制台輸出第一個參數

  

echo %1

  如果批處理文件的名字是test.bat,並使用 test Hello 命令來調用它 ,那么將會在控制台輸出 Hello

下面的批處理文件會對第一個參數的值進行檢查,如果第一個參數是 start ,它就會輸出 Starting application ,如果第一個參數是 stop,就輸出 Stopping application ,否則 輸出 Invalid parameter

echo off if %1==start  goto start 
if %1==stop  goto stop
goto invalid
:start 
echo Starting application
goto end
:stop
echo Stopping application
goto end
:invalid
echo Invalid parameter
goto end
:end

如果檢查運行批處理文件 是否帶有參數時,可以將 %1 與空字符串比較,例如 對於下面的批處理文件,如果運行時沒有使用參數,就會在控制台輸出 No parameter

if "1%"=="" echo No parameter

或者

if ""%1""=="""" echo No parameter

 shift 

shift 命令用來將 全體參數向后移動一位,將%2的值 賦值給了1%,將%3的值賦值給%2,依次類推,例如下面的代碼使用了一條shift命令

echo off
shift
echo %1
echo %2

如果在運行批處理文件時,附加了三個參數 a、b、c,那么上面的命令會有如下輸出

b

c

移動之后,要使用%0 來 引用第一個參數,而現在最后一個參數則失效了。

call

call命令用來調用另外一條命令。

批處理中調用另外一個批處理的命令,否則剩下的批處理指令將不會被執行
有時有的應用程序用start調用出錯的,也可以call調用

setLocal

在批處理文件中使用setLocal對環境變量的修改只在當前批處理腳本中有效,當遇到endLocal命令后,在setLocal之后設置的環境變量恢復到使用SETLOCAL語句以前的狀態。

start

打開一個新的Windows控制台,並可以為這個新的控制台指定一個名字,例如:

start  "Title"

此外,在Titile 后面,還有傳入一條將要在新的控制台中執行的命令

例如 :在新的Windows控制台中 輸出 this is new Title

start "Title" echo this is New Title

那么上面大致介紹了 批量處理文件的一些 DOS 命令,下面就進入我們要了解的重點:Tomcat 的啟動批處理文件

catalina.bat批處理文件

  catalina.bat批處理文件用來啟動或者關閉Tomat,另外兩個文件(startup.bat 和 shutdown.bat)提供了更簡單的啟動和關閉Tomcat的方法,實際上,startup.bat 和 shutdowm.bat都會調用catalian.bat並傳入相應的參數,

在%CATALINA_HOME%/bin目錄下,需要以下面的語法格式調用catalina.bat 腳本

catalina

或者使用下面的語法從%CATALINA_HOME%/bin目錄下調用該腳本

bin\catalina

在兩種情況下 參數 command 的可選值包括:

  • debug 在調試器中啟動 Catalina
  • debug -security 在使用安全管理器的情況下調試Catalina
  • embedded 以嵌入模式啟動Catalina
  • jpda start 在JPDA調試器下啟動Catalina
  • run 在當前窗口中啟動 Catalina
  • run -security 在當前窗口中,通過安全管理器啟動Catalina
  • start 在新窗口啟動Catalina
  • start -security 在新窗口通過安全管理器啟動Catalina
  • stop 關閉Catalina

例如 要想在新窗口啟動Catalina,可以使用如下命令

catalina start

 

 

 

 

 

 

 

  

  


免責聲明!

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



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