java - 使用 Java 杀死进程

标签 java process

我想知道如何“杀死”一个已经启动的进程。我知道 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/50559674/

相关文章:

Java - 如何自动设置 img.getScaledInstance( ); 的宽度?

java - 未找到默认 Activity 正在等待进程

windows - 如何在 shell 脚本中关闭通过其参数定位的 Windows 进程?

ruby - 在 ruby​​ 中运行控制台命令,获取子进程的 PID 并在几秒钟内将其终止

python - 我如何检查 linux 进程以确定进程如何/何时死亡/终止?

java - 如何使用 JDK 1.6 编译与 JDBC 3.0 兼容的源代码?

java - Retrofit 2 中获取和发布请求的代码错误

C# 私有(private)变量和 java 私有(private)变量 getter 和 setter - 区别?

c++ - 在 C++ 中查找进程的 CPU 使用率

python - 使用子流程找出流程何时结束