如何在 Java 9 中遍歷 Process API 的程序樹?


Java 9 改進了 Process API,支援管理和控制作業系統程序。在 Java 9 之前,很難使用 Java 程式管理和控制作業系統程序。自 Java 9 以來,已添加了新類和新介面,以透過 Java 程式來控制作業系統程序。已添加了諸如 ProcessHandle ProcessHandle.Info 之類的新介面,還已添加了 Process 類的新方法。

在以下示例中,我們可以遍歷 Process API 的程序樹(子級程序後代程序)。

示例

import java.io.IOException;

public class ProcessTreeTest {
   public static void main(String args[]) throws IOException {
      Runtime.getRuntime().exec("cmd");
     
      System.out.println("Showing children processes:");
      ProcessHandle processHandle = ProcessHandle.current();
      processHandle.children().forEach(childProcess ->
              System.out.println("PID: " + childProcess.pid() + " Command: " + childProcess.info().command().get()));
     
      System.out.println("Showing descendant processes:");
      processHandle.descendants().forEach(descendantProcess ->
              System.out.println("PID: " + descendantProcess.pid() + " Command: " +   descendantProcess.info().command().get()));
   }
}

輸出

Showing children processes:
PID: 5092 Command: C:\WINDOWS\System32\cmd.exe
Showing descendant processes:
PID: 5092 Command: C:\WINDOWS\System32\cmd.exe
PID: 2256 Command: C:\WINDOWS\System32\conhost.exe

更新日期:08-4 月-2020

277 次瀏覽

啟動您的 職業

完成課程獲得認證

開始
廣告
© . All rights reserved.