• ベストアンサー

Javaプログラムからバッチ起動

Runtimeクラスを使用し、バッチファイルをJavaプログラム内で呼び出す処理を実装しました。Javaにより呼び出されるバッチファイル(X.bat)は、他の2つのバッチファイル(A.bat、B.bat)を呼び出すようにプログラムされています。ここで質問なのですが、実際にこのJavaプログラムを実行しX.batを呼び出し、最終的にA.bat、B.batが呼ばれているかどうかの確認をしたところ、どうもB.batが呼ばれずにA.bat終了後、処理が終了してしまっているなのですが、この原因についてご教授いただきたく質問いたしました。

質問者が選んだベストアンサー

  • ベストアンサー
  • galoon
  • ベストアンサー率28% (38/133)
回答No.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)
回答No.2

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クラスのインスタンスを分ければ良いです。

noname#14768
noname#14768
回答No.1

これだけでは情報が少なすぎて何とも言えません。 原因として考えられるのは、 1.パスの問題。呼び出すバッチの相対パス 2.X.batの不具合 でしょうね。

関連するQ&A