我有一个程序(某种进程监视器),它使用 ProcessBuilder 启动多个程序。当我启动这个 ProcessBuilder(对于每个程序)时,我可以启动它,它会给我一个 Process 对象。有了内存中的这个 Process 对象,我什至可以使用 destroy() 或 destroyForcibly() 来停止我的程序。
现在,如果我的主程序(进程监视器)崩溃了,我重新启动它,并且假设我有一个我启动的每个程序的 PID,我怎么能用这个 PID 重新创建一个 Process 对象?我在 Process 类或 ProcessBuilder 中看不到该选项(尽管我猜我们需要 ProcessLoader 而不是 Builder)。
有没有办法做到这一点?
为了说明我想要的:
long pid = getPid();
Process process = new Process(pid);
//or
Process process = new Process();
process.load(pid);