2011-02-03 4 views
7

どのようにしてBashコマンドを実行し、Javaから出力を収集しますか?Bashコマンドを実行してJavaから出力を収集するにはどうすればよいですか?

こんにちはすべて、基本的に私は、基本的なコンソールアプリケーションを書いています、そして、そのようなsudoのように、そこからコマンドを実行できるようにしたいと思い***、停止、ifconfigコマンドなど

任意の洞察力?。

答えて

13

この目的では、processBuilder APIを使用できます。 this exampleを参照してください。

+0

の例では、それをすべて言います。 – extraneon

+3

processBuilder.redirectErrorStream(true)を呼び出すことを忘れないでください。または、別のスレッドをスピンアップしてstderrを排出します。 – Ron

+0

"example"にbashの記載がありません – eis

3

未テストコード:

Runtime run = Runtime.getRuntime(); 
Process pr = run.exec(bashcommand); 
pr.waitFor(); 
BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream())); 

while ((String line ; line = buf.readLine()) != null) 
{ 
    System.out.println(line); 
} 
+0

Not working(android 4.3) – TomeeNS

+1

はechoのようなコマンドで動作しますが、catでは動作しません – Zanidd

関連する問題