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