web-dev-qa-db-ja.com

システムプロパティと環境変数の違いは何ですか

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

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

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

アプレットの部分であるenv var Java_HOMEの場合、アプレットをブラウザおよびアプレットビューアにデプロイすると同じ結果が得られます。

システムレベルで環境変数を定義し、getenv("envName")を使用すると、結果はnullになります。とにかくそれを定義して私のJavaプログラムで取得できますか?

35
Khue Vu

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

44
Konrad Garus
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

25