Java 9通过添加新方法改进了Process 类,还提供了一个新接口:ProcessHandle 和ProcessHandle.Info,以获取有关流程及其信息的所有详细信息。
以下是在Java 9中添加到Process的新方法的列表
boolean supportsNormalTermination()
:如果的实现destroy()
要正常终止进程,则可以返回true,否则返回false。
long pid()
:它可以返回进程的本机进程ID。
ProcessHandle toHandle()
:它可以为流程返回一个ProcessHandle 。
流children()
:它可以返回进程的直接子级的快照。
流descendants()
:它可以返回流程后代的快照。
ProcessHandle.Info info()
: 它可以返回有关流程信息的快照。
CompletableFuture onExit()
:它可以返回CompletableFuture 来终止进程。
public class ProcessTest { public static void main(String args[]) { ProcessHandle processHandle = ProcessHandle.current(); ProcessHandle.Info processInfo = processHandle.info(); System.out.println(processHandle.pid()); System.out.println(processHandle.parent()); System.out.println(processInfo.arguments().isPresent()); System.out.println(processInfo.command().isPresent()); System.out.println(processInfo.command().get().contains("nhooo")); System.out.println(processInfo.startInstant().isPresent()); } }
输出结果
4892 Optional[7788] false true false true