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() 的子进程将可以看到这些修改。 两 ProcessBuilder 个实例始终包含独立的进程环境,因此对返回的映射所做的更改永远不会反映在任何其他 ProcessBuilder 实例或返回 System#getenv System.getenv的值中。

如果系统不支持环境变量,则返回空映射。

返回的映射不允许 null 键或值。 尝试插入或查询是否存在 null 键或值将引发一个 NullPointerException。 尝试查询键或值是否存在类型不String会导致引发 。ClassCastException

返回的映射的行为依赖于系统。 系统可能不允许修改环境变量或禁止某些变量名称或值。 因此,尝试修改映射可能会失败 UnsupportedOperationException ,或者 IllegalArgumentException 操作系统不允许修改。

由于环境变量名称和值的外部格式依赖于系统,因此它们与 Java 的 Unicode 字符串之间可能不存在一对一映射。 然而,映射是通过这样实现的,即Java代码未修改的环境变量将在子进程中具有未修改的本机表示形式。

返回的地图及其集合视图可能不符合和Object#hashCode方法的Object#equals一般协定。

返回的映射通常在所有平台上区分大小写。

如果存在安全管理器,则会使用RuntimePermission("getenv.*")权限调用其SecurityManager#checkPermission checkPermission方法。 这 SecurityException 可能会导致引发。

将信息传递给Java子进程时,系统属性通常优先于环境变量。

适用于 . 的 java.lang.ProcessBuilder.environment()Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于