1. 程式人生 > 程式設計 >java 通過cmd 呼叫命令啟動tomcat的操作

java 通過cmd 呼叫命令啟動tomcat的操作

我們有時候為了方便,公司會做一個專案管理,便於啟動和關閉我們部署在伺服器上面的專案,我這裡就採用了java的方式,嗯......僅限於參考......

public static void main(String args[]) throws IOException {
    String exec = "C:/software/apache-tomcat-8.5.24/bin/startup.bat";
    Runtime runtime = Runtime.getRuntime();
    runtime.exec(exec);
  }

如上所述,如果我們執行這段程式碼,那麼我們的tomcat是啟動不了的,我們用cmd試一下,請看下面,會出現錯誤資訊,(在bin目錄的父目錄下呼叫除外)

java 通過cmd 呼叫命令啟動tomcat的操作

開啟用於啟動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,就需要設定CATALINA_HOME環境變數,你可以將CATALINA_HOME新增到Windows 系統的環境變數中,其值就是Tomcat的安裝目錄。

新增CATALINA_HOME環境變數的過程和前述新增JAVA_HOME環境變數的過程是一樣的。如果你不想在系統的環境變數中新增,也可以直接在startup.bat檔案中進行設定

set CATALINA_HOME=C:\software\apache-tomcat-8.5.24

我這裡採用將 CATALINA_HOME 新增到 startup.bat 檔案中,shutdown.bat 同理。如果找不準位置,可以將設定CATALINA_HOME環境變數的這句程式碼放到檔案的第一行。

java 通過cmd 呼叫命令啟動tomcat的操作

在這裡設定後,不論是通過cmd在其它目錄下啟動還是通過java程式碼啟動tomcat都將無比絲滑......

注意:如果將該java程式打成war包放在tomcat下執行,則無法通過該程式啟動其他tomcat,原因暫時未知......當然,可將其打包成jar包通過cmd執行程式,直接裸奔,則程式可成功執行,開啟其他的tomcat......

補充知識:使用java命令執行bat檔案(重啟本地指定位置的Tomcat)

使用下面的程式碼執行指定位置的bat檔案

public static void main(String[] args) {
     Runtime rt = Runtime.getRuntime(); //返回當前應用程式的Runtime物件
     Process ps=null;//制子程序的執行或獲取該子程序的資訊
     try {
      ps=rt.exec("cmd.exe /c start C:\\Users\\qiang\\Desktop\\restartTomct.bat");//這裡的C:\\Users\\qiang\\Desktop\\restartTomct.bat 換成你自己的bat檔案的絕對路徑
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
     int i=ps.exitValue();
     if(i == 0){//執行成功
       System.out.println("執行完成");
     }else{//執行失敗
       System.out.println("執行失敗");
     }
     ps=null;
  }

=================================================
bat檔案的名稱為 restartTomct.bat
=================================================

@echo log location

@echo 下面的c代表進入的是碟符c 下 ,也就是Tomcat所在碟符的位置,(需要修改為自己的碟符)

c:

@echo 進入Tomcat的bin目錄 (需要修改為自己的Tomcat的bin目錄的位置)

cd C:\Users\qiang\Desktop\apache-tomcat-7.0.53\apache-tomcat-7.0.53\bin\
call shutdown.bat
@echo wait for  10 sec........
ping -n 10 127.0.0.1

call startup.bat

echo ----------- >> C:\Users\qiang\Desktop\apache-tomcat-7.0.53\tomcat_restart.log
exit

以上這篇java 通過cmd 呼叫命令啟動tomcat的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。