-1
javaでは、外部コマンド(Windowsではcmd
、Linuxではterminal
など)を実行して、コマンド実行時の結果をキャプチャするにはどうすればよいですか?外部コマンドを実行して出力をキャプチャする方法は?
javaでは、外部コマンド(Windowsではcmd
、Linuxではterminal
など)を実行して、コマンド実行時の結果をキャプチャするにはどうすればよいですか?外部コマンドを実行して出力をキャプチャする方法は?
この目的でApache Commons Execを検討してください。
It is a simpleしかし、信頼性の高いフレームワークは、マルチプラットフォームのコマンドラインコールを実装します。
ここでは、コマンドを実行し、結果出力をString
インスタンスとして取得するサンプルメソッドを示します。
import java.io.ByteArrayOutputStream;
import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.Executor;
import org.apache.commons.exec.PumpStreamHandler;
public String execToString(String command) throws Exception {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
CommandLine commandline = CommandLine.parse(command);
DefaultExecutor exec = new DefaultExecutor();
PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream);
exec.setStreamHandler(streamHandler);
exec.execute(commandline);
return(outputStream.toString());
}
あなたはどのような問題があるのか不明です。 [最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を見て、これまでに行ったことと期待していることを示してください。 – gfelisberto
@gfelisberto私は彼の質問をより明確に編集しました。 –
Webには数百の例があり、ここではこれを行う方法についてはここにあります。 OPが「古典的な」解決策でどのような問題を抱えているかは不明である。 – gfelisberto