45

これについてはよくわかりません。Java アプリを実行するか、(IDE 環境で) アプレット ビューアでアプレットを実行する と、env 変数で定義されている CLASSPATH とSystem.getProperty("java.class.path")同じ結果が得られます。System.getenv("CLASSPATH")

しかし、アプレットを Web サーバーにデプロイし、同じコンピューターからクライアントとしてアクセスすると、2 つの結果が異なります。( System.getProperty("java.class.path")JRE ホームのみを指し、System.getenv("CLASSPATH")null を返します)。

そして、ここに私が不思議に思う他のいくつかのことがあります:

アプレット部分である env var JAVA_HOME については、アプレットをブラウザとアプレット ビューアーに展開すると、同じ結果が得られます。

そして、システムレベルで環境変数を定義しgetenv("envName")、結果を使用するとnull. いずれにせよ、それを定義して Java プログラムで取得することはできますか?

4

2 に答える 2

52

環境変数は、オペレーティング システムに固有です。プロパティは JVM のみです。

于 2010-05-19T07:47:51.630 に答える
31
System.getProperty("Propertname") **Platform Independent** 

上記のメソッドは、JVM の引数とプロパティを返します。

System.getenv("EnvName")       **Platform Dependent**

上記のメソッドは、オペレーティング システムenvironment変数を返します。

Linux では、次のコマンドを使用してシェルから環境変数を設定できます。

export SYSTEM_TYPE=PROD

Javaでは、変数を次のように読み取ることができます

System.getenv("SYSTEM_TYPE")

上記のコードは戻りますPROD

http://javarevisited.blogspot.in/2012/08/how-to-get-environment-variables-in.html

于 2013-05-24T13:04:33.833 に答える