如何使用java停止正在运行的批处理文件
我需要使用java启动一个批处理,几秒钟后我需要停止运行批处理文件 这是我的密码如何使用java停止正在运行的批处理文件,java,process,cmd,Java,Process,Cmd,我需要使用java启动一个批处理,几秒钟后我需要停止运行批处理文件 这是我的密码 try { Process process=Runtime.getRuntime().exec("cmd /c start D:/test.bat"); Thread.sleep(20*1000); process.destroy(); } catch (Exception e) { e.printStackTrace(); } 我
try {
Process process=Runtime.getRuntime().exec("cmd /c start D:/test.bat");
Thread.sleep(20*1000);
process.destroy();
} catch (Exception e) {
e.printStackTrace();
}
我的代码无法停止批处理文件。这并不是那么简单,因为您必须终止刚刚启动的独立操作系统进程。看起来可能对你有帮助
简而言之:您必须找到批处理脚本的PID(实际上是运行批处理脚本的
cmd
进程的PID),并使用taskkill
将其杀死。如果批处理使用Java在cmd.exe中运行,请运行此命令
Process prClose = Runtime.getRuntime().exec("taskkill /im cmd.exe");
如果在.bat文件上运行
java
或javaw
,则需要首先终止批处理文件:
Runtime.getRuntime().exec("taskkill /f /im jqs.exe") ;
Runtime.getRuntime().exec("taskkill /f /im javaw.exe") ;
Runtime.getRuntime().exec("taskkill /f /im java.exe") ;
并停止cmd(如果需要)
希望这有帮助
Runtime.getRuntime().exec("taskkill /f /im cmd.exe") ;