ProcessBuilder.Environment 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
回傳此製程建構者環境的字串地圖視圖。
[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返回的值中。
若系統不支援環境變數,則會回傳一個空的映射。
回傳的映射不允許空鍵或空值。 嘗試插入或查詢空鍵或空值的存在時,會拋出一個 NullPointerException。 嘗試查詢非型別 String 的鍵或值是否存在,會拋出一個 ClassCastException。
回傳映射的行為依系統而異。 系統可能不允許修改環境變數,或禁止某些變數名稱或值。 因此,嘗試修改映射可能會失敗UnsupportedOperationExceptionIllegalArgumentException,無論是作業系統不允許修改還是不允許。
由於環境變數名稱與值的外部格式依系統而異,因此它們與 Java Unicode 字串之間可能無法一對一對應。 然而,該映射的實作方式是,未經 Java 程式碼修改的環境變數在子程序中會保留未修改的原生表示。
回傳的地圖及其集合視圖可能不符合與Object#equals方法的一般契約Object#hashCode。
回傳的地圖在所有平台上通常都以大小寫為區分。
如果存在安全管理器,則會以權限呼叫SecurityManager#checkPermission checkPermissionRuntimePermission其("getenv.*")方法。 這可能導致 SecurityException 被拋擲。
當將資訊傳遞給 Java 子程序時,系統屬性通常會優先於環境變數。
的 java.lang.ProcessBuilder.environment()Java 檔。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。