2011-10-23 23 views
1

win7でJavaコードを使用してバッチファイルを実行したかっただけです。コードで.exeファイルを実行できますが、バッチでは動作しません。問題はどこだ? cmd.exeでもそのコマンドで始まらないことが分かります。しかし、私は他のexeファイルを実行することができます、私はいくつかを試してみました。コードはこれです(tryとcatchはそれです):どちらもうまくいきませんでした!Javaでバッチファイルを実行する

Runtime.getRuntime().exec("cmd.exe /c demo.bat"); 
Runtime.getRuntime().exec("demo.bat"); 

私はプロセスで作業しようとしましたが、私は以下のコードを書いています。

  try{ 
       Runtime rt = Runtime.getRuntime(); 
       Process proc= rt.exec("C:\\Windows\\System32\\cmd.exe"); 
       int b = proc.exitValue(); 
       // int exitVal = proc.exitValue(); 
       //System.out.println("Process exitValue: " + exitVal);} 
       } 
       catch (Exception e) { 
       // TODO: handle exception 
        e.printStackTrace(); 
      } 
+1

迷惑なプロンプトウィンドウを隠すには、本当にあなたのコードということですか?コンパイルできません。 – Mat

+0

これは正確なコードではないと確信しています(3インチあります)エラーメッセージ、例外、...?execで返された 'Process' '? –

+0

はい、どこに問題がありますか?何を取得しますか?例外?スタックトレースは何ですか? –

答えて

5

は、以下のことを試してください:

String[] cmd = {"cmd.exe", "/c", "demo.bat"); 
Runtime.getRuntime().exec(cmd); 

私は常にコマンドとパラメータ自分自身を分割することを好む、これはコードです

 java.lang.IllegalThreadStateException:process has not exited 
     at java.lang.ProcessImpl.exitValue(Native Method) 
     at Test.Asli.main(Asli.java:38) 

をretuened。それ以外の場合は、あなたが望むものではないかもしれない空間を分割することによって行われます。

+0

これは変更されません。エラーは発生しません。例外はありません。 。 何も起こりません –

1

はこれを試してみてください:この

Runtime.getRuntime().exec("cmd.exe /c start demo.bat"); 
0

用途:

try { 
Process p = Runtime.getRuntime().exec("C:PATH/TO/FILE/yourbatchfile.bat"); 
} catch(Exception e) { 
    e.printStackTrace(); 
} 

(あなたがいることをしたい場合)それも

関連する問題