8

バッチファイルを実行する次の行があります。

Process process = Runtime.getRuntime().exec("cmd /c start rake.bat");

しかし、バックグラウンドで実行し、コマンドラインをユーザーに表示したくありません。これを行うにはどうすれば変更できますか?

問題は、コマンド ウィンドウが開き、プログラムの GUI に割り込むことです。バッチファイルの実行中にコマンドウィンドウが表示されないようにしたいだけです。

4

3 に答える 3

11

「開始」を完全に削除すると、必要なことが行われます(これがウィンドウを作成しているためです):

Process process = Runtime.getRuntime().exec("cmd /c rake.bat");

私はこれをテストしましたが、もちろん、コマンドプロンプトと通信したい場合は、入力ストリームと出力ストリームが必要であり、エラーストリームも忘れないでください。動作しません)。

于 2012-07-09T11:56:39.033 に答える
1

「バックグラウンドで」の意味がよくわかりません

単にウィンドウが表示されていないことを意味する場合は、この SO の回答が役立つ場合があります。

(ただし) これが実行されている間も Java プログラムを実行し続けたい場合は、これを別のスレッドで生成する必要があります。

上記に関係なく、バッチ ファイルの sdtout/stderr をキャプチャするように注意してください

于 2012-07-09T11:52:09.970 に答える
0
Process process = Runtime.getRuntime().exec("cmd /c start rake.bat");

上記の行を Java プロセスから呼び出してバッチ ファイルを実行する場合。これはデフォルトでバックグラウンドで実行されます。

于 2012-07-09T11:49:49.463 に答える