如何在Java 9中获取Process API的父进程?

ProcessHandle 接口使我们可以执行一些操作,并检查流程的状态。它提供了进程的本机pid开始 时间CPU 时间用户父 进程后代。我们可以通过调用 parent()方法来访问父进程,返回值为Optional。如果子进程没有父级或父级不可用,则为空。

语法

Optional<ProcessHandle> parent()

示例

import java.io.*;

public class ParentProcessTest {
   public static void main(String args[]) {
      try {
         Process notepadProcess = new ProcessBuilder("notepad.exe").start();
         ProcessHandle parentHandle = notepadProcess.toHandle().parent().get();
         System.out.println("Parent Process Native PID: "+ parentHandle.pid());
      } catch(IOException e) {
         e.printStackTrace();
      }
   }
}

在上面的示例中,将启动“记事本” 应用程序,并打印父流程本机PID。

输出结果

Parent Process Native PID : 7108