- ベストアンサー
Runtime#proccessのwait
//Batch part RunBatch(batchName); //sleep(1000); //B-part Systems.out.println("B-part"); --------------------------------------------------------- public void RunBatch(String BatchName)throws Exception { Process pr = null; Runtime runtime = Runtime.getRuntime(); pr = runtime.exec("cmd.exe /c start "+BatchName); try { int exitCode = pr.waitFor(); if(process != null) { process.getErrorStream().close(); process.getInputStream().close(); process.getOutputStream().close(); process.destroy(); } } catch (Exception e) { e.printStackTrace(); } } このままですとバッチの処理が長い場合、処理が終了する前にB-partへ 処理が移行してしまいます。 とりあえずでwaitをかけてはいるのですが、完全にバッチ処理が終了 するまでB-partへ移行させない方法はありませんでしょうか? おそらくバッチファイルから結果出力させてJAVA側でフックするとは思うのですが、具体的にどう組めばいいのかが分かりません。
お礼
auty様 返事送れて申し訳ございません ご回答ありがとうございました。 確かにちゃんとプロセスが終了するまで待機するようになりました。 とりあえずこの処理にて運用してみます。 これは私の我侭ですがサーバマシンにはあまり入れたくなかったので 別のアプローチ法も考えています。