言語

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がスローされます。

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

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

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

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

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

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

Javaドキュメント。

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

適用対象