用Java杀死进程

时间:2017-11-30 20:21:18

标签: java java.lang.class

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

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

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

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

1 个答案:

答案 0 :(得分:0)

当您启动流程时,CMD呼叫可能已启动其他子流程。赔率很高你的第二个命令行是杀死其中一个孩子,而不是CMD本身。理想的情况是杀死已启动的进程,而不是运行第二个命令行可执行文件来杀死(可能)其中一个子进程。

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