gpt4 book ai didi

java - Java中杀死进程的正确方法

转载 作者:太空狗 更新时间:2023-10-29 22:51:43 25 4
gpt4 key购买 nike

在 Java 中终止进程的最佳方法是什么?

获取 PID,然后使用 Runtime.exec() 杀死它?

使用 destroyForcibly()

这两种方法有什么区别,还有其他解决方法吗?

最佳答案

如果你想终止的进程已经被你的应用程序启动了

那么您可能有一个对它的引用(ProcessBuilder.start()Runtime.exec() 都返回一个引用)。在这种情况下,您可以简单地调用 p.destroy()。我认为这是最干净的方法(但要小心:由 p 启动的子进程可能会保持 Activity 状态,查看 Process.destroy does not kill multiple child processes 了解更多信息)。

destroyForcibly 只应在 destroy() 在特定超时后失败时使用。简而言之

  1. 使用 destroy() 终止进程
  2. 允许进程以合理的超时从容退出
  3. 如果进程还活着,用destroyForcibly()杀死它

如果你想杀死的进程是外部的

那么您别无选择:您需要通过 OS API (Runtime.exec)。在 Windows 上,要调用的程序是 taskkill.exe,而在 Mac 和 Linux 上,您可以尝试 kill


看看Support for Process.destroyForcibly() and .isAlive() from Java 8Killing a process using JavaCode a Simple Java App to Kill Any Process After a Specified Time了解更多信息。

关于java - Java中杀死进程的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35230507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com