如何在 Java 9 中遍历 Process API 的进程树?
javaobject oriented programmingprogramming更新于 2025/10/5 11:24:17
Java 9 改进了 Process API,它有助于管理和控制操作系统进程。在 Java 9 之前,使用 Java 程序管理和控制操作系统进程一直很困难。自 Javaava 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
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

