「みんな教えて! 選手権!!」開催のお知らせ

お世話になります。
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();
}

A 回答 (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);
}
}
    • good
    • 3
この回答へのお礼

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

お礼日時:2007/12/09 17:24

String[] cmd = {"cmd","/c","バッチファイルのパス"};



ではどうでしょうか。バッチファイルは、cmd.exeを実行して起動するはずですので。
    • good
    • 0
この回答へのお礼

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

引き続きよろしくお願いします。

お礼日時:2007/12/07 23:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報