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目錄的父目錄下調用除外)
打開用于啟動Tomcat的批處理文件startup.bat,首先判斷CATALINA_HOME環境變量是否為空,如果為空,就將當前目錄設為CATALINA_HOME的值。
接著判斷當前目錄下是否存在bincatalina.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:softwareapache-tomcat-8.5.24
我這里采用將 CATALINA_HOME 添加到 startup.bat 文件中,shutdown.bat 同理。如果找不準位置,可以將設置CATALINA_HOME環境變量的這句代碼放到文件的第一行。
在這里設置后,不論是通過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:UsersqiangDesktoprestartTomct.bat');//這里的C:UsersqiangDesktoprestartTomct.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:UsersqiangDesktopapache-tomcat-7.0.53apache-tomcat-7.0.53bincall shutdown.bat@echo wait for 10 sec........ping -n 10 127.0.0.1call startup.batecho ----------- >> C:UsersqiangDesktopapache-tomcat-7.0.53tomcat_restart.logexit
以上這篇java 通過cmd 調用命令啟動tomcat的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
