我正在寻找能够在 Java 上执行此操作的解决方案:
- 产生一个进程。
- 挂起它(就像 Linux 中的 kill -STOP 一样)。
- 继续挂起的进程(如 Linux 中的 kill -CONT)。
- 在运行时读/写他们的标准输入/输出管道。
- 在(至少)Linux 和 Windows 上工作。
据我所知,Java 标准只实现了第一个和第四个,而不是第二个和第三个。
我能做什么?
没有办法从Java“直接”做。
您将需要为 Windows / Linux 做一些特定的事情,在每种情况下执行外部程序或调用本机代码。
在 Linux 上,您可以kill
按照您的建议使用。
在 Windows 上,您可以调用SuspendThread()
,或者您可以启动 SysInternals 工具“PsSuspend”。这里有一些信息可以帮助你:
如果您希望从 Java 调用本机代码,JNIWrapper 可能会帮助您。
此外,如果您需要生成进程的 PID,那么您可能还需要通过本机代码启动它们,因为 Java 不会为您提供它们的 PID。