Process p = rt.exec("notepad.exe"); ProcessHandle ph = p.toHandle(); System.out.println("進程是否運行:" + ph.isAlive()); System.out.println("進程ID:" + ph.pid()); System.out.println("父進程:" + ph.parent()); ProcessHandle.Info info = ph.info(); System.out.println("進程命令:" + info.command()); System.out.println("進程參數:" + info.arguments()); System.out.println("進程啟動時間: " + info.startInstant()); System.out.println("進程積計運行時間:" + info.totalCpuDuration()); // 通過CompletetableFuture 在進程結束時運行某個命令 CompletableFuture<ProcessHandle> cf = ph.onExit(); cf.thenRunAsync(() -> System.out.println("程序退出")); Thread.sleep(5000);
output:
進程是否運行:true 進程ID:7004 父進程:Optional[13192] 進程命令:Optional[C:\Windows\System32\notepad.exe] 進程參數:Optional.empty 進程啟動時間: Optional[2019-07-25T07:07:49.393Z] 進程積計運行時間:Optional[PT0.03125S] 程序退出