使用 Java 杀死进程

2022-08-31 12:59:08

我想知道如何“杀死”一个已经开始的进程。我知道Process API,但我不确定,如果我能用它来“杀死”一个已经运行的进程,比如firefox.exe等。如果可以使用流程API,您能为我指出正确的方向吗?如果没有,还有哪些其他可用选项?谢谢。


答案 1

如果在 Java 应用程序中从 with 启动进程(例如,通过调用 或 ),则您有一个对它的有效引用,并且可以在类中调用该方法来终止该特定进程。Runtime.exec()ProcessBuilder.start()Processdestroy()Process

但请注意,如果您调用的进程创建了新的子进程,则这些子进程可能不会终止(请参阅 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4770092)。

另一方面,如果你想杀死外部进程(你没有从Java应用程序生成),那么你可以做的一件事就是调用O / S实用程序,这允许你这样做。例如,您可以在Unix / Linux下尝试打开命令并检查返回值以确保应用程序是否被杀死(0表示成功,-1表示错误)。但这当然会使您的应用程序平台依赖于您。Runtime.exec()kill


答案 2

在 Windows 上,您可以使用此命令。

taskkill /F /IM <processname>.exe 

要强行杀死它,您可以使用;

Runtime.getRuntime().exec("taskkill /F /IM <processname>.exe")

推荐