假设我已经知道当前正在运行的进程,如何将其转换为Java中的Process对象?
该进程已经在运行,所以我不想再启动另一个进程,我只想将它封装到一个Process对象中,以便在Java代码中使用。
类似于:
int pid = getPid();
Process proc = magicGetProcess(pid);
感谢
java.lang.Process
类,您可以通过使用JNI和本地代码编写自定义实现的java.lang.Process
类。然后,您的自定义类可以实现额外的方法,例如您问题中提到的方法。使用RMI怎么样?将一个Process对象传递给它所在的进程可能吗?可能不行,因为Process不可序列化。
waitpid()
函数来获取非子进程的退出代码。问题是如何从Java中调用它。 - Alex Jasmin不行。Process 中的每个操作都要求该进程是子进程,而不是任意进程。
Process
的哪些功能呢?你是想要执行waitFor()
,还是希望能够将输入/输出流重定向到你的应用程序中,或者其他什么需求?我相当确定你所要求的本身是不可能实现的,但我们可能可以帮助你满足实际需求。 - Mark Peters