1

我正在寻找能够在 Java 上执行此操作的解决方案:

  • 产生一个进程。
  • 挂起它(就像 Linux 中的 kill -STOP 一样)。
  • 继续挂起的进程(如 Linux 中的 kill -CONT)。
  • 在运行时读/写他们的标准输入/输出管道。
  • 在(至少)Linux 和 Windows 上工作。

据我所知,Java 标准只实现了第一个和第四个,而不是第二个和第三个。

我能做什么?

4

1 回答 1

1

没有办法从Java“直接”做。

您将需要为 Windows / Linux 做一些特定的事情,在每种情况下执行外部程序或调用本机代码。

在 Linux 上,您可以kill按照您的建议使用。

在 Windows 上,您可以调用SuspendThread(),或者您可以启动 SysInternals 工具“PsSuspend”。这里有一些信息可以帮助你:

如何在 Windows 下暂停/恢复任何外部进程?

如何在 Windows 中暂停/恢复进程?

如果您希望从 Java 调用本机代码,JNIWrapper 可能会帮助您。

此外,如果您需要生成进程的 PID,那么您可能还需要通过本机代码启动它们,因为 Java 不会为您提供它们的 PID。

于 2013-10-02T18:07:23.257 回答