- ベストアンサー
Javaプログラムからバッチ起動
Runtimeクラスを使用し、バッチファイルをJavaプログラム内で呼び出す処理を実装しました。Javaにより呼び出されるバッチファイル(X.bat)は、他の2つのバッチファイル(A.bat、B.bat)を呼び出すようにプログラムされています。ここで質問なのですが、実際にこのJavaプログラムを実行しX.batを呼び出し、最終的にA.bat、B.batが呼ばれているかどうかの確認をしたところ、どうもB.batが呼ばれずにA.bat終了後、処理が終了してしまっているなのですが、この原因についてご教授いただきたく質問いたしました。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
おそらくX.batの記述に誤りがあるのだと思います。 バッチファイルから他のバッチファイルの起動を行い、その後制御を返させるには、ただバッチファイル名を指定するのではいけなかったと思います。 <X.batの内容> A.bat B.bat であるならば次のように修正してください。 <X.batの内容> call A.bat call B.bat callを付けないとA.batの処理後にX.batの処理も終了してしまうのです。
その他の回答 (2)
- PCFREAK
- ベストアンサー率51% (417/805)
Runtimeクラスを使い回していませんか? Runtime rt = new Runtime(); rt.exec("A.bat"); rt.exec("B.bat"); という様にRuntimeクラスを使い回すと、うまく動かないです。 Runtime rt1 = new Runtime(); Runtime rt2 = new Runtime(); rt1.exec("A.bat"); rt2.exec("B.bat"); という様に、Runtimeクラスのインスタンスを分ければ良いです。
これだけでは情報が少なすぎて何とも言えません。 原因として考えられるのは、 1.パスの問題。呼び出すバッチの相対パス 2.X.batの不具合 でしょうね。