我从我的Java代码运行进程,如p = run.exec("cmd /c start \"\" C:\\<nameof .cmd file>");
。在某些时候,我想杀死这个过程。在进程上调用destroy()
方法会终止进程,但我想关闭命令行,其中procces仍在运行。当我查看任务管理器时,此进程没有名称,它只有postfix .exe
。
所以我不能这样做p = run.exec("taskkill /F /IM <nameofexe>.exe");
,因为这个运行过程没有名字。
有没有办法,如何完全关闭cmd并终止这个正在运行的进程?
答案 0 :(得分:0)
当您启动流程时,CMD呼叫可能已启动其他子流程。赔率很高你的第二个命令行是杀死其中一个孩子,而不是CMD本身。理想的情况是杀死已启动的进程,而不是运行第二个命令行可执行文件来杀死(可能)其中一个子进程。
Process child = run.exec("cmd /c start \"\" C:\\<nameof .cmd file>");
if (timeToKillTheProcess) {
child.destroy();
child.waitFor();
}