3
A
答えて
10
Process p = Runtime.getRuntime().exec("executable.exec");
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
System.out.println(line);
}
0
あなたはplexus-utilsからコマンドラインのタイプを使用する場合は、例えば、コマンドラインの相互作用に関連した重い物を持ち上げるの多くを回避することができますプロセスを待っている、引数をエスケープしているなど必要に応じてタイムアウトするようにコマンドを設定することもできます。
StreamConsumerを渡してstdoutとstderrをキャプチャできます。コマンドライン処理では、一度に1行ずつコンシューマに出力を渡します。
Commandline cl = new Commandline();
cl.setExecutable("dir");
cl.setWorkingDirectory(workingDirectory.getAbsolutePath());
cl.createArg().setValue("/S");
StreamConsumer consumer = new StreamConsumer() {
public void consumeLine(String line) {
//do something with the line
}
};
StreamConsumer stderr = new StreamConsumer() {
public void consumeLine(String line) {
//do something with the line
}
};
int exitCode;
try {
exitCode = CommandLineUtils.execute(cl, consumer, stderr, getLogger());
} catch (CommandLineException ex) {
//handle exception
}
0
ブロッキングを防ぐために、stdoutとstderrを同時に使用する必要があることに注意してください。詳細はthis answerを参照してください。
stderrではなくstdoutを取得するだけで、離れていくことができます。しかし、いくつかのシナリオで.exeがエラーを生成した場合、親プロセスは余分な(予想外の)ストリームデータをブロックできます。ストリームの収集を同時に実行することが常にベストです。
関連する問題
- 1. 入力出力をstdoutではなくファイルにリダイレクトするにはどうすればよいですか?
- 2. .exeの出力をpythonでファイルにリダイレクトする方法は?
- 3. コマンド(バッチ・ループで実行)の出力をファイルにリダイレクトするにはどうすればよいですか?
- 4. Javaコンソール出力をファイルにパイプするにはどうすればよいですか?
- 5. 重複を生成せずにコードテーブルでAutoMapperを使用するにはどうすればよいですか?
- 6. OpenFileDialogを使用せずにローカルディレクトリのファイルを参照するにはどうすればよいですか? (C#)
- 7. 外部ライブラリを使用せずにファイルを圧縮するにはどうすればよいですか?
- 8. .svcファイルを生成するにはどうすればよいですか?
- 9. .pfxファイルを生成するにはどうすればよいですか?
- 10. jQueryを使用せずにJavaScriptでJSONファイルを開くにはどうすればよいですか?
- 11. ディスクからファイルを削除せずにファイルを削除するにはどうすればよいですか?
- 12. Javaスタックトレースのbash出力をLinuxのファイルに出力するにはどうすればよいですか?
- 13. Java Hadoop:入力ファイルとして使用し、各ファイルの行数を出力するマッパーを作成するにはどうすればよいですか?
- 14. 単体テストヘルプ。コンソールへのメッセージ出力をテストするにはどうすればよいですか?
- 15. 外部オブジェクトを作成せずにxamlファイルをロードするにはどうすればよいですか?
- 16. 出力リダイレクトを使用すると、ファイルはいつ作成されますか?
- 17. webpack出力ディレクトリの内容でtar.gzファイルを作成するにはどうすればよいですか?
- 18. フラッシュを使用せずに.solファイルを書き込むにはどうすればよいですか?
- 19. マジックナンバーを使用せずにファイルをSVGとするにはどうすればいいですか?
- 20. gcc-xmlのようなclangでメタデータ出力を生成するにはどうすればよいですか?
- 21. 出力ファイルに行を作成するにはどうすればよいですか?
- 22. MSIファイルを使用せずにセットアップ(* .exe)ファイルを実行するには?
- 23. ファイルを送信せずにリモートホストでscpサービスを利用できるかどうかを検出するにはどうすればよいですか?
- 24. ファイルが存在しないときにエラーを生成せずに、Apache設定にファイルを含めるにはどうすればよいですか?
- 25. Javaを使用してディスクに保存せずにzipファイルを生成するにはどうすればよいですか?
- 26. ファイル入力にファイルが選択されているかどうかをJQueryを使って検出するにはどうすればよいですか?
- 27. "<"を使用してサブプロセス内のファイルをリダイレクトするにはどうすればよいですか?
- 28. Rustでブロックせずに子プロセスの出力を読み取るにはどうすればよいですか?
- 29. Robot Framework:コンソール出力をファイルにリダイレクトする方法
- 30. AndroidでKSOAP2を使用せずにWebサービスを呼び出すにはどうすればよいですか?
おそらく入力の代わりにgetOutputStreamまたはgetErrorStreamからストリームを読みたいと思うでしょう。 – JtR
入力ストリームにする必要があります。そのような命名規則。 –
おそらく、最後にp.waitFor()などを追加する必要がありますか? –