Java 9 thêm interface ProcessHandle vào Process API nâng cao class Process. Instance của interface ProcessHandle xác định tiến trình local cho phép truy vấn trạng thái tiến trình và quản lý tiến trình, ProcessHandle.Info cho phép dùng code local do cần lấy PID của tiến trình local.
Lớp ProcessBuilder tạo tiến trình hệ điều hành riêng biệt. Ví dụ dưới tạo tiến trình ứng dụng notepad dùng lớp ProcessBuilder.
Ví dụ
import java.time.ZoneId;
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.io.IOException;
public class ProcessBuilderTest {
public static void main(String args[]) throws IOException {
ProcessBuilder pb = new ProcessBuilder("notepad.exe");
String np = "Not Present";
Process p = pb.start();
ProcessHandle.Info info = p.info();
System.out.printf("Process ID : %s%n", p.pid());
System.out.printf("Command name : %s%n", info.command().orElse(np));
System.out.printf("Command line : %s%n", info.commandLine().orElse(np));
System.out.printf("Start time: %s%n", info.startInstant().map(i -> i.atZone(ZoneId.systemDefault()).toLocalDateTime().toString()).orElse(np));
System.out.printf("Arguments : %s%n", info.arguments().map(a -> Stream.of(a).collect(Collectors.joining(" "))).orElse(np));
System.out.printf("User : %s%n", info.user().orElse(np));
}
}
Ví dụ trên khởi chạy notepad application như sau:

Kết quả
Process ID : 3728 Command name : C:\WINDOWS\System32\notepad.exe Command line : Not Present Start time: 2020-04-20T18:06:30.378 Arguments : Not Present User : Tutorialspoint\User