1、背景描述
有時候,我們會在 catalina.bat 或 catalina.sh 檔案中,自定義一些環境變數,例如額外指定 JDK 路徑或設定 JVM 引數。
實際上,直接在 catalina.bat 或 catalina.sh 檔案中,自定義環境變數的做法,是不規範的。
因為在對 Tomcat 進行(小版本)升級時,新版本的 catalina.bat 或 catalina.sh 檔案,會覆蓋舊版本的檔案,從而導致原來的自定義環境變數失效。
對此,Tomcat 官方已在 catalina.bat(或 catalina.sh )檔案的註釋中(見下圖),提示使用 setenv.bat(或 setenv.sh )配置檔案(需額外建立)來儲存自定義環境變數。
2、指定JDK路徑
2.1、Windows系統
2.1.1、指定JDK路徑之前
如上圖所示,在配置 Tomcat 的自定義環境變數之前,Tomcat 預設使用(Windows)系統環境變數所配置的 JDK 路徑。
2.1.2、指定JDK路徑命令
如上圖所示,先在 Tomcat 的 bin 目錄下,建立一個 setenv.txt 檔案,編輯好指定JDK路徑的命令之後,再將 txt 字尾更改為 bat 即可。
set JAVA_HOME=自定義JDK路徑
2.1.3、指定JDK路徑之後
如上圖所示,透過 setenv.bat 檔案,成功使用了指定的 JDK 路徑。
2.2、Linux系統
注意:在Linux系統中,Tomcat 使用的是 JRE 路徑,因此需要指定的是 JRE_HOME 而不是 JAVA_HOME 。
2.2.1、指定JRE路徑之前
如上圖所示,在配置 Tomcat 的自定義環境變數之前,Tomcat 預設使用(Linux)系統環境變數所配置的 JDK 路徑。
2.2.2、指定JRE路徑命令
如上圖所示,先在 Tomcat 的 bin 目錄下,建立一個 setenv.sh 檔案,編輯好指定JRE路徑的命令之後,再將該指令碼檔案新增執行許可權(chmod +x setenv.sh)即可。
JRE_HOME="自定義jre路徑"
2.2.3、指定JRE路徑之後
如上圖所示,透過 setenv.sh 檔案,成功使用了指定的 JRE 路徑。
3、設定JVM引數
3.1、Windows系統
3.1.1、設定JVM引數命令
-Xms:設定 JVM 初始化時記憶體;
-Xmx:設定 JVM 最大可用記憶體;
這兩個值一般設定相同的大小,以避免每次垃圾回收完成後 JVM 重新分配記憶體。
set JAVA_OPTS=-Xms自定義大小 -Xmx自定義大小
3.1.2、設定JVM引數之後
如上圖所示,透過 setenv.bat 檔案,成功使用了設定的 JVM 引數。
3.2、Linux系統
3.2.1、設定JVM引數命令
-Xms:設定 JVM 初始化時記憶體;
-Xmx:設定 JVM 最大可用記憶體;
這兩個值一般設定相同的大小,以避免每次垃圾回收完成後 JVM 重新分配記憶體。
JAVA_OPTS="-Xms自定義大小 -Xmx自定義大小"
3.2.2、設定JVM引數之後
如上圖所示,透過 setenv.sh 檔案,成功使用了設定的 JVM 引數。
本文參考
【1】【zno2】【setenv.bat】【部落格園】【2016-10-17】
【2】【song854601134】【 tomcat中管理環境變數之setenv.sh】【CSDN】【2024-05-31】
【3】【且行且思】【Tomcat透過setenv.bat指定jdk和jre(相對路徑)】【部落格園】【2023-06-28】
【4】【yuer!】【如何修改linux下tomcat指定的jdk路徑】【部落格園】【2020-04-02】