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/32121272/

相关文章:

c - 需要知道 fork 是如何工作的吗?

python - 如果 RAM 接近饱和,如何终止 Python 进程(Windows 上的 Anaconda)?

c# - 如何获取 IRunningTask 的 PID(Task Scheduler 2.0 库)

java - JDBC 天生不安全?

java - Swing:如何制作带有软边框的非矩形窗口?

java - SwingX JX表 : use ColorHighlighter to color rows based on a "row object"

python - 获取当前打开文件的完整路径

linux - 如何从父进程获取子进程

java - class.getResource (".") 返回 null

java - 如何使用 JSR 303(Bean 验证)?