Linux 兩個tomcat指定兩個不同jdk版本啟動,不用全域性環境變數
阿新 • • 發佈:2018-11-05
Linux tomcat指定jdk版本啟動,不用全域性環境變數
1.為什麼要寫這樣的一篇部落格?
- 本人是一名實習生,在公司要上線一個專案的時候,發現一個很奇葩的問題,就是一個伺服器上要有兩個不同版本tomcat和兩個不同版本JDK,既是,執行的主程式用的是tomcat 6.0和JDK1.5,報表服務用的是tomcat 9.0 和 JDK1.8,所以在一個伺服器要有兩個tomcat和兩個JDK問題就此出現。
- 兩個tomcat會發生埠衝突的問題,這裡不詳解,一般是次要的服務修改tomcat裡的conf檔案裡的server.xml,所有預設埠,全部+1,如:8080改為8081;
- 解決問題一般為一個tomcat使用JDK的全域性變數,一個修改配置檔案,為指定JDK
2.配置tomcat使用指定JDK不用全域性環境變數 ,主要是修改setclasspath.sh和catalina.sh
- 進入tomcat的bin檔案裡,使用vim catalina.sh
- 最好是export裡面全部都有變數,很多部落格裡都只是寫JAVA_HOME和JRE_HOME兩個,記得改成自己JDK地址。
export JAVA_HOME=/opt/jdk1.8/jdk1.8.0_191
export JRE_HOME=/opt/jdk1.8/jdk1.8.0_191/jre
export CATALINA_HOME=/opt/tomcat-9.0
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
3. 使用vim setclasspath.sh
4. 加入下面兩行配置,並修改如圖紅色框的東西。
export JAVA_HOME=/opt/jdk1.8/jdk1.8.0_191 export JRE_HOME=/opt/jdk1.8/jdk1.8.0_191/jre
5. 如圖兩個tomcat對應不同版本jdk同時啟動成功,注意:修改登入讀取一次的配置檔案,需要重啟,不斷讀取的,則不需重啟。
3.思考,關閉防火牆是不是就是解決這種問題最好的方法?
- 經過一個晚上的思考,其實關閉或者禁用防火牆都不是一個好方法來的,因為防火牆始終在生成環境或測試環境中,始終都是要開啟的。
- 既然8080可以穿透防火牆,那肯定可以設定另一個埠來穿透防火牆
- 後續會補充防火牆,開啟埠的方法
- 補充開啟埠的方法,點選,前往:linux開啟埠方法