ProcessBuilder.Environment メソッド

定義

このプロセス ビルダーの環境の文字列マップ ビューを返します。

[Android.Runtime.Register("environment", "()Ljava/util/Map;", "")]
public System.Collections.Generic.IDictionary<string,string>? Environment ();
[<Android.Runtime.Register("environment", "()Ljava/util/Map;", "")>]
member this.Environment : unit -> System.Collections.Generic.IDictionary<string, string>

戻り値

このプロセス ビルダーの環境

属性

注釈

このプロセス ビルダーの環境の文字列マップ ビューを返します。

プロセス ビルダーが作成されるたびに、環境は現在のプロセス環境のコピーに初期化されます (を参照)。System#getenv() その後、このオブジェクトの #start() メソッドによって開始されたサブプロセスでは、このマップが環境として使用されます。

返されるオブジェクトは、通常 java.util.Map Map の操作を使用して変更できます。 これらの変更は、 メソッドを使用して開始されたサブプロセスに #start() 表示されます。 2 つの ProcessBuilder インスタンスには常に独立したプロセス環境が含まれているため、返されるマップへの変更は、他 ProcessBuilder のインスタンスや によって System#getenv System.getenv返される値には反映されません。

システムが環境変数をサポートしていない場合は、空のマップが返されます。

返されるマップでは、null キーまたは値は許可されません。 null キーまたは値の存在を挿入またはクエリしようとすると、 NullPointerExceptionがスローされます。 型 String ではないキーまたは値の存在を照会しようとすると、 ClassCastExceptionがスローされます。

返されるマップの動作はシステムに依存します。 システムは環境変数の変更を許可しないか、特定の変数名または値を禁止する場合があります。 このため、マップの変更の試行は、 または UnsupportedOperationExceptionIllegalArgumentException オペレーティング システムで変更が許可されていない場合に失敗する可能性があります。

環境変数の名前と値の外部形式はシステムに依存するため、それらの文字列と Java の Unicode 文字列の間に 1 対 1 のマッピングが存在しない可能性があります。 それでも、マップは、Java コードによって変更されない環境変数が、サブプロセスで変更されていないネイティブ表現を持つような方法で実装されます。

返されたマップとそのコレクション ビューは、 メソッドと Object#hashCode メソッドの一般的なコントラクトにObject#equals従わない場合があります。

返されるマップは、通常、すべてのプラットフォームで大文字と小文字が区別されます。

セキュリティ マネージャーが存在する場合、その SecurityManager#checkPermission checkPermission メソッドはアクセス許可を使用して RuntimePermission("getenv.*") 呼び出されます。 これにより、 が SecurityException スローされる可能性があります。

Java サブプロセスに情報を渡す場合、一般にシステム プロパティは環境変数よりも優先されます。

java.lang.ProcessBuilder.environment()Java ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

適用対象