Process p = Runtime.getRuntime().exec(new String[] { "C:/work/bat/ConsoleApplication1.exe" });
Thread.sleep(4000);
p.destroy();
int res = p.waitFor();
System.out.println("res" + res);
这将打印res1
,JVM将一次停止,但如果是这样的话:
Process p = Runtime.getRuntime().exec(new String[] { "C:/work/bat/exe.bat" });
在 4s 之后,这也将打印res1
,但JVM不会一次停止。 JVM将在更多 6s 之后停止。
这是 exe.bat
C:\work\bat\ConsoleApplication1.exe
这是 ConsoleApplication1.exe :
int _tmain(int argc, _TCHAR* argv[])
{
int a=0;
while(a<100){
Sleep(100);
cout<<a++ <<endl;
}
return 0;
}
那么,如何像exe文件一样停止bat文件?
答案 0 :(得分:0)
尝试此操作以终止该过程。查找进程ID并将其与taskkill
命令一起使用。
Runtime rt = Runtime.getRuntime();
rt.exec("taskkill " +<Your process id>);
但它适用于Windows。对于Linux使用此 -
rt.exec("kill -9 " +<Your process id>);