Java中的Kill进程
我从Java代码中运行进程,如下所示Java中的Kill进程,java,java.lang.class,Java,Java.lang.class,我从Java代码中运行进程,如下所示p=run.exec(“cmd/cstart\”\“c:\”)。在某个时候,我想终止这个过程。在进程上调用destroy()方法会杀死进程,但我想关闭命令行,因为进程仍在运行。当我查看任务管理器时,这个进程没有名字,只有后缀.exe 在任务管理器中,它如下所示: 所以我不能这样做p=run.exec(“taskkill/F/IM.exe”),因为此正在运行的进程没有名称 有没有办法完全关闭cmd并终止这个正在运行的进程?启动进程时,cmd调用可能启动了其他子
p=run.exec(“cmd/cstart\”\“c:\”)代码>。在某个时候,我想终止这个过程。在进程上调用destroy()
方法会杀死进程,但我想关闭命令行,因为进程仍在运行。当我查看任务管理器时,这个进程没有名字,只有后缀.exe
在任务管理器中,它如下所示:
所以我不能这样做p=run.exec(“taskkill/F/IM.exe”)代码>,因为此正在运行的进程没有名称
有没有办法完全关闭cmd并终止这个正在运行的进程?启动进程时,cmd调用可能启动了其他子进程。很有可能你的第二个命令行正在杀死其中一个孩子,但不是CMD本身。理想的情况是终止已启动的进程,而不是运行第二个命令行可执行文件终止(可能)其中一个子进程
Process child = run.exec("cmd /c start \"\" C:\\<nameof .cmd file>");
if (timeToKillTheProcess) {
child.destroy();
child.waitFor();
}
processchild=run.exec(“cmd/c start\”\“c:\”);
if(完成进程的时间){
child.destroy();
child.waitFor();
}
启动流程时,CMD调用可能启动了其他子流程。很有可能你的第二个命令行正在杀死其中一个孩子,但不是CMD本身。理想的情况是终止已启动的进程,而不是运行第二个命令行可执行文件终止(可能)其中一个子进程
Process child = run.exec("cmd /c start \"\" C:\\<nameof .cmd file>");
if (timeToKillTheProcess) {
child.destroy();
child.waitFor();
}
processchild=run.exec(“cmd/c start\”\“c:\”);
if(完成进程的时间){
child.destroy();
child.waitFor();
}
我正在运行的流程是一个Java项目。如何在启动时捕获PID?Process child=run.exec(“cmd/c start\”\“c:\”
调用cmd。我显然不理解您消息的第一部分。@M.Barabas Ok第三次编辑删除了额外的信息,希望非常清楚。PID存储在进程
对象中,但如果您使用对象的内置销毁()
函数。进程
对象将为您执行正确的taskkill
。当我在run.exec
之后立即调用detroy()
时,进程将立即终止,并且不会运行:(@M.Barabas)我在回答如何销毁它的问题。你必须在你想要销毁它的时候加入一些逻辑来销毁它。我正在运行的进程是一个Java项目。启动时如何捕获PID?process child=run.exec(“cmd/c start\”\“c:\”
调用cmd。我显然不理解您消息的第一部分。@M.Barabas Ok第三次编辑删除了额外的信息,希望非常清楚。PID存储在进程
对象中,但如果您使用对象的内置销毁()
函数。进程
对象将为您执行正确的taskkill
。当我在run.exec
之后立即调用detroy()
时,进程将立即终止,并且不会运行:(@M.Barabas)我在回答如何摧毁它的问题。你必须在你想要摧毁它的时候用一些逻辑来摧毁它。