我想知道如何“杀死”一个已经启动的进程。我知道 Process API,但我不确定,如果我可以用它来“杀死”一个已经在运行的进程,例如 firefox.exe 等。如果可以使用 Process API,你能指点我到正确的方向?如果没有,其他可用选项是什么?谢谢。
最佳答案
如果您从您的 Java 应用程序中启动进程(例如通过调用 Runtime.exec()
或 ProcessBuilder.start()
),那么您有一个有效的Process
引用它,您可以调用 Process
类中的 destroy()
方法来终止该特定进程。
但请注意,如果您调用的流程创建了新的子流程,则这些子流程可能不会终止(请参阅 https://bugs.openjdk.org/browse/JDK-4770092)。
另一方面,如果您想终止外部进程(不是从您的 Java 应用程序生成的),那么您可以做的一件事是调用允许您执行此操作的 O/S 实用程序。例如,您可以在 Unix/Linux 下尝试 runtime.exec()
on kill
命令并检查返回值以确保应用程序是否被终止(0 表示成功,-1 表示错误)。但这当然会使您的应用程序平台依赖。
关于java - 使用 Java 杀死进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32121272/