Java 9对Process API进行了改进,以获取正在运行的进程的PID,获取正在运行的进程的子代和/或后代,还添加了一个新类,该类有助于列出所有正在运行的进程,获取有关任意进程的信息以及遍历进程树。这些方法返回的信息可以是操作系统上正在运行的进程的快照。

在下面的示例中,我们可以使用ProcessHandle的pid()方法获取正在运行的进程的ID。

示例public class ProcessHandleTest {

public static void main(String args[]) {
ProcessHandle processHandle = ProcessHandle.current();
System.out.println("PID of running Process: " + processHandle.pid());
System.out.println("Command: " + processHandle.info().command().orElse("N/A"));
System.out.println("CPU Duration: " + processHandle.info().totalCpuDuration().get().getSeconds() + " seconds");
}
}

输出结果PID of the running Process: 4248

Command: C:\Program Files\Java\jdk-9.0.4\bin\java.exe
CPU Duration: 0 seconds