在通用Java 程式中擷取進程ID
取得與正在執行的Java 程式關聯的進程ID (PID) 一直是持續的挑戰適合尋求獨立於平台的解決方案的開發人員。雖然存在特定於平台的解決方法,但它們缺乏所需的通用性。
RuntimeMXBean 方法
最廣泛採用的解決方案引入了 ManagementFactory 類別及其 getRuntimeMXBean() 方法。此行通常會產生類似「12345@hostname」的名稱,其中 12345 代表 PID。
但是,需要注意的是,這種方法依賴於未記錄的細微差別,並且不能保證在所有 JVM 實作中提供一致的結果。事實上,Java 文件本身明確警告傳回的名稱可以是任意的,遵循特定於平台的約定:
傳回表示正在執行的 Java 虛擬機器的名稱。傳回的名稱字串可以是任意字串,並且 Java 虛擬機實作可以選擇在傳回的名稱字串中嵌入特定於平台的有用資訊。每個正在運作的虛擬機器可以有不同的名稱。
Java 9 Process API
在Java 9 中引入,ProcessHandle API 提供了一種更直接且標準化的替代方案來擷取PID:
long pid = ProcessHandle.current().pid();
此方法提供了一種可靠且與平台無關的方法來存取進程ID現代Java 版本,消除了與RuntimeMXBean方法相關的複雜性。
以上是如何可靠取得Java程式的進程ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!