好吧,所以我正在编写这个程序,它本质上是为我批量运行其他 java 程序(多次、改变参数、并行执行等)。
到目前为止,运行部分运行良好。使用 ProcessBuilder 的 .start() 方法(我相信相当于 Runtime.exec()),它创建一个单独的 java 进程并开始运行。
问题是我希望能够在这些进程启动后暂停/停止它们。对于简单的线程,这通常很容易做到,但是外部进程似乎没有任何内置的等待/ sleep 功能,至少从外部的角度来看是这样。
我的问题是:有没有办法暂停 java.lang.Process 对象?如果没有,有人知道任何包含此功能的相关执行库吗?除此之外,扩展 Process 是一个更可行的选择吗?
最佳答案
My question(s) is this: Is there a way to pause a java.lang.Process object?
您可能已经发现,标准 API 中不支持此功能。例如,Process
不提供 suspend()
/resume()
方法。
If not, does anyone know of any related exec libraries that do contain this ability?
在 POSIX 兼容操作系统(例如 GNU/Linux 或 Mac OS)上,您可以使用另一个系统调用(使用 Runtime.exec
、ProcessBuilder
或某些 native 实现的库)来发出 kill
命令。
使用kill
命令,您可以发送诸如SIGSTOP
(暂停进程)和SIGCONT
(恢复进程)之类的信号。
关于java - 如何使用Java的ProcessBuilder.start()暂停进程运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6207417/