使用 setenv 配置檔案管理 Tomcat 的自定義環境變數

Javaer1995發表於2024-08-30

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 )配置檔案(需額外建立)來儲存自定義環境變數。

image

2、指定JDK路徑

2.1、Windows系統

2.1.1、指定JDK路徑之前

image

如上圖所示,在配置 Tomcat 的自定義環境變數之前,Tomcat 預設使用(Windows)系統環境變數所配置的 JDK 路徑。

2.1.2、指定JDK路徑命令

image

如上圖所示,先在 Tomcat 的 bin 目錄下,建立一個 setenv.txt 檔案,編輯好指定JDK路徑的命令之後,再將 txt 字尾更改為 bat 即可。

set JAVA_HOME=自定義JDK路徑

2.1.3、指定JDK路徑之後

image

如上圖所示,透過 setenv.bat 檔案,成功使用了指定的 JDK 路徑。

2.2、Linux系統

注意:在Linux系統中,Tomcat 使用的是 JRE 路徑,因此需要指定的是 JRE_HOME 而不是 JAVA_HOME 。

2.2.1、指定JRE路徑之前

image

如上圖所示,在配置 Tomcat 的自定義環境變數之前,Tomcat 預設使用(Linux)系統環境變數所配置的 JDK 路徑。

2.2.2、指定JRE路徑命令

image

如上圖所示,先在 Tomcat 的 bin 目錄下,建立一個 setenv.sh 檔案,編輯好指定JRE路徑的命令之後,再將該指令碼檔案新增執行許可權(chmod +x setenv.sh)即可。

JRE_HOME="自定義jre路徑"

2.2.3、指定JRE路徑之後

image

如上圖所示,透過 setenv.sh 檔案,成功使用了指定的 JRE 路徑。

3、設定JVM引數

3.1、Windows系統

3.1.1、設定JVM引數命令

image

-Xms:設定 JVM 初始化時記憶體;

-Xmx:設定 JVM 最大可用記憶體;

這兩個值一般設定相同的大小,以避免每次垃圾回收完成後 JVM 重新分配記憶體。

set JAVA_OPTS=-Xms自定義大小 -Xmx自定義大小

3.1.2、設定JVM引數之後

image

如上圖所示,透過 setenv.bat 檔案,成功使用了設定的 JVM 引數。

3.2、Linux系統

3.2.1、設定JVM引數命令

image

-Xms:設定 JVM 初始化時記憶體;

-Xmx:設定 JVM 最大可用記憶體;

這兩個值一般設定相同的大小,以避免每次垃圾回收完成後 JVM 重新分配記憶體。

JAVA_OPTS="-Xms自定義大小 -Xmx自定義大小"

3.2.2、設定JVM引數之後

image

如上圖所示,透過 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】

相關文章