2016-09-17 6 views
2

Tomcatアプリケーションを使用してバッチファイルを呼び出そうとしています。バッチは正しく実行されますが、バッチ内のtimeoutコマンドはバッチを一時停止しません。バッチが直接実行されると、タイムアウトはプロセスを期待どおりに一時停止します。バッチファイルでtimeoutコマンドが機能しない

私はバッチを次のように呼び出しています: Runtime.getRuntime()。exec( "test.bat");

+0

**/NOBREAK **オプションで** TIMEOUT **を実行しましたか?これは、キーを効果的に押し続ける何らかの継続的なやりとりがある場合、排除されます。 – Compo

答えて

8

Runtime.getRuntime().exec()を呼び出すと、開始されたプロセスの入力ストリームと出力ストリームがリダイレクトされます。このプロセスから起動されたtimeoutは、同じハンドルを継承します。

問題はtimeouttries to get access to the consoleですが、リダイレクトのためにできない問題です。

は、コンソール入力ストリームがリダイレクトされ

<nul timeout /t 10 

timeoutが失敗したから実行しているこの動作をテストすることができます。 timeoutが失敗した場合

回避策の一つは、pingコマンドは待機を強制的に実行され、

(timeout /t 10 || >nul ping -n 11 localhost) 2>nul 

である可能性があります。

関連する問題