2012-03-22 21 views
0

runtime.exec()を使用してバッチファイルを実行するJavaスクリプトを作成しましたが、出力ストリームを取得してwrite()関数を使用するとうまくいきますコマンドを実行しません。Java - バッチファイルにコマンドを実行する

Runtime runtime = Runtime.getRuntime(); 
Process p; 
p = runtime.exec("cmd /c start batchfile.bat");  
out = p.getOutputStream(); 
out.write("command".getBytes()); 

これは、バッチファイルを表示しますが、コマンドを実行していない、それはそれを表示するように、バッチファイルを実行しているCMDにコマンドを入力する別の方法は何ですか?

+0

batchfile.batにコマンドを表示させることを期待していますか、それともcmdで実行しますか? – GETah

答えて

-1

出力ストリームに書き込んでいます。私はあなたが入力ストリームに書き込むことを意味すると思います。 startコマンドで

Runtime runtime = Runtime.getRuntime(); 
Process p; 
p = runtime.exec("cmd /c start batchfile.bat");  
in = p.getInputStream(); 
in.write("command".getBytes()); 
+0

私はあなたが出力ストリームに書き込む必要があると確信しています。とにかく入力ストリームには書き込み機能がありません。 – matthew9090

0

、別のコマンドウィンドウが開かれ、バッチファイルから任意の出力が表示されます。

が、これは試してみてください。また、cmd/cのbuild.batとしても動作するはずです。この場合、必要に応じてJavaのサブプロセスから出力を読み取ることができます。

+0

jarファイルを呼び出すバッチファイルはログファイルを作成し、出力を読み込みます。これはうまく動作し、新しい出力があるときに更新します。入力しようとしているときにコマンドを入力するだけですそれはcmdに入ります。 – matthew9090

+0

まあまあ、あなたのやろうとしていること、ProcessBuilderのようなものなのでしょうか? http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html – Dan675

+0

マイククラフト・サーバー・ラッパーを作成しようとしています。http://www.minecraftwiki.net/wiki/Programs_and_editors/ Server_wrappersはJavaの初心者ですが、これが正しい方法に近づいているかどうかはわかりません。 – matthew9090

関連する問題