Modern Process API
Inspect and manage OS processes with ProcessHandle.
Code Comparison
โ Java 8
Process p = Runtime.getRuntime()
.exec("ls -la");
int code = p.waitFor();
// no way to get PID
// no easy process info
โ Java 9+
ProcessHandle ph =
ProcessHandle.current();
long pid = ph.pid();
ph.info().command()
.ifPresent(IO::println);
ph.children().forEach(
c -> IO.println(c.pid()));
See a problem with this code? Let us know.
Why the modern way wins
Full info
Access PID, command, arguments, start time, CPU usage.
Process tree
Navigate parent, children, and descendants.
Monitoring
onExit() returns a CompletableFuture for async monitoring.
Old Approach
Runtime.exec()
Modern Approach
ProcessHandle
Since JDK
9
Difficulty
Intermediate
JDK Support
Modern Process API
Available
Widely available since JDK 9 (Sept 2017)
How it works
ProcessHandle provides PIDs, process info (command, arguments, start time, CPU usage), parent/child relationships, and process destruction. No more undocumented Process internals.
Related Documentation
Proof