• ベストアンサー

javaからバッチファイル実行

お世話になります。 javaプログラムからバッチファイルを呼び出して実行するようにしたいのですが、上手くいきません。 サイトを参考に以下のように書いてみましたが、 バッチファイルの一行目のみ実行している?ようで、二行目以降の処理をしていないようです。 バッチファイル単体での実行は正常に動作しています。 お気づきの点がありましたら教えて頂けないでしょうか。 try { String[] cmd = {"バッチファイルのパス"}; Process p = Runtime.getRuntime().exec(cmd); while(true){ try{ p.exitValue(); }catch(IllegalThreadStateException e){ continue; } break; } } catch (IOException e) { e.printStackTrace(); }

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

  • ベストアンサー
回答No.2

たとえば、直下のhoge.bat を起動するJavaプログラムは、、、 import java.io.IOException; public class Cmd1 { public static void main(String args[]) throws IOException { String cmd = "cmd.exe /c start hoge.bat"; Runtime.getRuntime().exec(cmd); } }

jinna1515
質問者

お礼

回答ありがとうございます。 正常にバッチファイルを実行することが出来ました! > String cmd = "cmd.exe /c start hoge.bat"; このような記述をすればいいのですね。もっと調べて勉強します。 お助け頂き、ありがとうございました。

その他の回答 (1)

noname#49664
noname#49664
回答No.1

String[] cmd = {"cmd","/c","バッチファイルのパス"}; ではどうでしょうか。バッチファイルは、cmd.exeを実行して起動するはずですので。

jinna1515
質問者

お礼

回答ありがとうございます。 試してみましたが、やはりバッチファイルの実行が出来ていないようです。C-cで抜けるまでコマンドプロンプトが入力待ちの様な状態になってしまいます。 教えて頂いた記述の仕方も調べてはいるのですが、理解が不足していたようです。参考URL等ありましたらお願いできませんでしょうか。 引き続きよろしくお願いします。

関連するQ&A