我需要编写一段代码,它能够:
那么,如何仅杀死我从代码中运行的进程?
P.S. 或许我应该使用 ProcessBuilder?
- 使用
Runtime.getRuntime().exec("java -jar MyServerRunner -port MYPORT");
运行 Unix 进程。 - 通过执行命令
lsof -t -i: MYPORT
来从 Java 代码中查找进程的 PID。 - 通过 pid
kill -9 PID
(也可以通过执行 Java 代码中的命令)来杀掉该进程。 - 然后执行其他命令。
Runtime.getRuntime().exec()
命令来执行此命令,则我的程序将以退出代码 137 的形式退出。这意味着当我运行 Runtime.getRuntime().exec("kill -9 PID")
时,我会杀死 My java 程序的进程,而不是从代码运行的程序。那么,如何仅杀死我从代码中运行的进程?
P.S. 或许我应该使用 ProcessBuilder?
Runtime.getRuntime()
来运行另一个Java进程,那么您正在做一些错误的事情。为什么不直接在Thread
中运行类呢? - Boris the Spider