2013-07-30 30 views
-2

從Java在bash執行過程/命令可以使用下面的類:獲得持續的反饋,JAVA

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.util.Arrays; 

public class CmdExecutor { 
    public CmdExecutor(){ 

    } 
    public void exe(String [] args) throws IOException{ 
      if (args.length <= 0) { 
       System.out.println("empty command"); 
       return; 
      } 

      Process process = new ProcessBuilder(args).start(); 
      InputStream is = process.getInputStream(); 
      InputStreamReader isr = new InputStreamReader(is); 
      BufferedReader br = new BufferedReader(isr); 

      String line; 
      System.out.printf("Output of running %s is:", 
       Arrays.toString(args)); 

      while ((line = br.readLine()) != null) { 
      System.out.println(line); 
      } 
    } 
} 

然而。如果流程沒有終止(尚),該怎麼辦?它進行計算並將其輸出到shell中。我希望能夠在另一個線程中運行進程並獲得輸出中的更改,如逐幀字符串。這怎麼能實現?

回答

相關問題