- ベストアンサー
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(); }
- みんなの回答 (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); } }
その他の回答 (1)
String[] cmd = {"cmd","/c","バッチファイルのパス"}; ではどうでしょうか。バッチファイルは、cmd.exeを実行して起動するはずですので。
お礼
回答ありがとうございます。 試してみましたが、やはりバッチファイルの実行が出来ていないようです。C-cで抜けるまでコマンドプロンプトが入力待ちの様な状態になってしまいます。 教えて頂いた記述の仕方も調べてはいるのですが、理解が不足していたようです。参考URL等ありましたらお願いできませんでしょうか。 引き続きよろしくお願いします。
お礼
回答ありがとうございます。 正常にバッチファイルを実行することが出来ました! > String cmd = "cmd.exe /c start hoge.bat"; このような記述をすればいいのですね。もっと調べて勉強します。 お助け頂き、ありがとうございました。