我正在尝试通过tomcat应用程序调用批处理文件。批处理正确执行,但批处理中的超时命令不会暂停批处理。直接执行批处理时,超时会按预期暂停进程。
我正在调用批处理: 调用Runtime.getRuntime()EXEC( “test.bat的”);
答案 0 :(得分:10)
当您调用Runtime.getRuntime().exec()
时,重定向已启动进程的输入和输出流。从此进程启动的timeout
将继承相同的句柄。
问题是timeout
tries to get access to the console,由于重定向而无法做到。
您可以测试从控制台运行的此行为
<nul timeout /t 10
重定向输入流时,timeout
失败。
一种解决方法可能是
( timeout /t 10 || >nul ping -n 11 localhost ) 2>nul
如果timeout
失败,则执行ping
命令强制等待。