我之前问过这个问题。 我有以下要求。
我有以下不符合要求的代码。请告诉我我在哪里犯了错误
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
//pr.exitValue();
//wait(10000);
pr.waitFor();
pr.destroy();
我使用的waitFor不起作用。我可以在执行批处理文件后延迟大约15分钟
由于
答案 0 :(得分:1)
如果您没有从批处理过程中读取stdIO的线程,则批处理过程可能会阻塞。即使你不感兴趣,你仍然需要阅读并丢弃它。然后你的等待有一个更好的工作变化。
答案 1 :(得分:0)
建议:获取输出和错误流并查看它们打印出来的内容。您可能会发现批处理文件发生错误,导致它比您预期的更早返回。
答案 2 :(得分:0)
我不确定你想要什么,但是
的Thread.sleep(900000);
你可以等15分钟。
答案 3 :(得分:0)
你的问题没有提到延迟Java。您暗示在Java程序执行后延迟应该在批处理文件中。因此,您可以将其配置为任何时间。这是一个20秒的例子:
@ECHO off
REM.-- End of application
:: do something here
GOTO :END
:: you could put functions here
:END
FOR /l %%a in (20,-1,1) do (TITLE %title% -- closing in %%as&ping -n 2 -w 1 127.0.0.1>NUL)
TITLE Press any key to close the application&ECHO.&GOTO:EOF
PAUSE>nul