如何使用java停止正在运行的批处理文件
问题描述:
我需要使用java开始批处理,几秒钟后我需要停止正在运行的批处理文件。如何使用java停止正在运行的批处理文件
这里是我的代码
try {
Process process=Runtime.getRuntime().exec("cmd /c start D:/test.bat");
Thread.sleep(20*1000);
process.destroy();
} catch (Exception e) {
e.printStackTrace();
}
我的代码未能阻止该批处理文件。
答
这并不是那么简单,因为你必须杀死一个你刚刚开始的独立操作系统进程。看起来像How to find and kill running Win-Processes from within Java?可能会帮助你。
简而言之:您必须找到批处理脚本的PID(实际上,运行批处理脚本的cmd
进程的PID),并使用taskkill
将其终止。
答
如果批中的cmd.exe使用Java运行时,如果你对你的.bat文件运行java
或javaw
运行此
Process prClose = Runtime.getRuntime().exec("taskkill /im cmd.exe");
答
,你需要先终止您的批处理文件:
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") ;
希望这有助于!