2014-09-03 136 views
0

如何等待「cmd1」退出,然後在不使用shell腳本的情況下運行「cmd2」。java等待輸出命令在ProcessBuilder中完成(「sh」)

void exec(CharSequence ch) throws IOException { 
     String string = ch.toString(); 
     out.write(string); 
     out.newLine(); 
     out.flush(); 
     //Fix here. 
    } 

    ProcessBuilder builder = new ProcessBuilder("sh"); 
    builder.redirectErrorStream(true); 
    process = builder.start(); 
    out = new BufferedWriter(new OutputStreamWriter(process.getOutputStream())); 

    exec("sleep 5"); // cmd1 
    exec("ls -al"); // cmd2 

回答

0

Process有一個方法爲這樣:

Process.waitFor() 

造成當前線程等待,如果必要的話,直到通過此Process對象所表示的過程已經終止。

+0

抱歉,waitFor()正在等待java調用的子進程,而不是等待子進程調用的進程在outputstream中完成。 – lymoge 2014-09-04 03:42:26