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

javaobject oriented programmingprogramming更新于 2025/9/10 13:00:17

ProcessHandle 接口允许我们执行一些操作,并检查进程的状态。它提供了进程的本机 pid、starttime、CPUtime、user、parentprocess 和 descendants。我们可以通过调用 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("父进程本机 PID: "+ parentHandle.pid());
      } catch(IOException e) {
         e.printStackTrace();
      }
   }
}

在上面的例子中,将启动一个"notepad "应用程序,并打印父进程本机 PID。

输出

父进程本机 PID : 7108

相关文章


有用资源