tomcat 8 catalina.properties 添加變數
我需要從 Tomcat 應用程序中讀取一個環境變數。我試著做:
/opt/tomcat/conf/catalina.properties
最後添加:
my.special.variable=some_value
並通過閱讀
System.getenv("my.special.variable")
我得到空
筆記
我在作業系統級別(linux ubuntu)定義了幾個,但得到它們的結果是 tomcat root - /opt/tomcat。
例如 :
printenv
我可以看到變數 HOME(也帶有 echo $HOME)。從tomcat之外的程序執行程式碼 - 結果是正確的 - /home/user.與部署在 tomcat 中的應用程序中的程式碼完全相同 - /opt/tomcat。
setenv.sh
您可以在(Linux/UNIX) 或setenv.bat
(Windows)中定義變數。以適當的方式為您正在執行的 O/S 定義變數。對於 Linux/UNIX,您需要導出變數。您還可以在啟動 Tomcat 的環境中定義它們。您還可以為應用程序(本地)更改創建一個
appenv.sh
或appenv.bat
文件。閱讀現有的setenv.sh
或setenv.bat
文件以獲取詳細資訊。句點和連字元對環境變數無效。傳統上,名稱是通過大寫名稱並將句點和連字元更改為下劃線來轉換的。那將給出名稱
MY_SPECIAL_VARIABLE
。這將使用如下行定義:export MY_SPECIAL_VARIABLE=some.value
您還可以通過添加字元串“-Dmy.special.variable=some_value setenv.sh”來定義 Java 系統屬性,
to the command line used to start Tomcat. This is done in the same file. In
您可以添加如下行:export JAVA_OPTS="$JAVA_OPTS -Dmy.special.variable=some_value"
您還可以使用此文件來調整 Java 配置。如果
JAVA_OPTS
在啟動 Tomcat 的環境中定義了系統變數,它的值將被添加到命令行中。如果您使用 Java 系統屬性,您可以呼叫
System.getProperty
. 這將被編碼為:System.getProperty("my.special.variable");