2016-05-16 9 views
-1

javaでは、外部コマンド(Windowsではcmd、Linuxではterminalなど)を実行して、コマンド実行時の結果をキャプチャするにはどうすればよいですか?外部コマンドを実行して出力をキャプチャする方法は?

+0

あなたはどのような問題があるのか​​不明です。 [最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を見て、これまでに行ったことと期待していることを示してください。 – gfelisberto

+0

@gfelisberto私は彼の質問をより明確に編集しました。 –

+0

Webには数百の例があり、ここではこれを行う方法についてはここにあります。 OPが「古典的な」解決策でどのような問題を抱えているかは不明である。 – gfelisberto

答えて

1

この目的で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()); 
} 
関連する問題