java - Java中杀死进程

标签 java java.lang.class

我从我的 Java 代码运行进程,如下所示 p = run.exec("cmd /c start \"\" C:\\<nameof .cmd file>"); 。在某些时候,我想终止这个进程。调用destroy()进程上的方法杀死进程,但我想关闭命令行,其中 procces 仍在运行。当我查看任务管理器时,这个进程没有名称,它只有后缀 .exe .

在任务管理器中,它看起来像这样: enter image description here

所以我不能这样做p = run.exec("taskkill /F /IM <nameofexe>.exe"); ,因为这个正在运行的进程没有名称。

有没有办法,如何完全关闭cmd并杀死这个正在运行的进程?

最佳答案

当您启动进程时,CMD 调用可能启动了其他子进程。您的第二个命令行很有可能会杀死其中一个 child ,但不会杀死 CMD 本身。理想的情况是终止已启动的进程,而不是运行第二个命令行可执行文件来终止(可能)其中一个子进程。

Process child = run.exec("cmd /c start \"\" C:\\<nameof .cmd file>");
if (timeToKillTheProcess) {
    child.destroy();
    child.waitFor();
}

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

相关文章:

java - 如何从一个 Servlet 传递另一个 ArrayList?

java - 为什么 maven-enforcer-plugin 在 travis-ci.org 上与 3.1.1 一起运行时会检测到 maven 3.2.5?

java - 如何将经典的 cronjobs 转换为quartz-scheduler 的 cron 表达式

java : "exception in thread main java.lang.nullpointerexception"

java - Java 中是否有线程安全类的列表?

java - 为什么逗号(,)不会导致编译错误?

java - 我可以使用 JOOQ 对查询运行 "explain analyze"吗?

java - 无法在Eclipse IDE中执行Java代码

java - Android SQLite尝试解锁读锁,当前线程未锁定

java - 将 String 解析为 Float 值时出现 NumberFormatException