Tomcatアプリから環境変数を読み取る必要があります。私がやろうとした:
/opt/Tomcat/conf/catalina.properties
最後にaddint:
my.special.variable=some_value
そしてそれを読んで
System.getenv("my.special.variable")
ヌルになる
注
OSレベル(linux ubuntu)でいくつか定義していますが、それらを取得した結果はTomcat root-/ opt/Tomcatです。
例えば :
with 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
また、Javaシステムプロパティを定義するには、次のような文字列 '-Dmy.special.variable = some_valueto the command line used to start Tomcat. This is done in the same file. In
setenv.sh`を追加します。
export Java_OPTS="$Java_OPTS -Dmy.special.variable=some_value"
このファイルを使用して、Java構成を調整することもできます。Java_OPTS
システム変数がTomcatの起動に使用される環境で定義されている場合、その値がコマンドラインに追加されます。
Javaシステムプロパティを使用する場合、System.getProperty
を呼び出して取得します。これは次のようにコード化されます。
System.getProperty("my.special.variable");
環境変数はTomcatのプロパティではありません。
たとえば、実際のコード内ではプロパティを使用できません。 server.xml。
System.getenvで取得できる環境変数を使用する場合は、オペレーティングシステムでそれらを定義する必要があります。それはかなり異なります。古典的なLinuxの例は/etc/default/Tomcat
またはsystemdサービス内。