waitFor:等待子進程執行結束,或者已終止子進程,此方法立即返回。
當RunTime對象調用exec方法后,jvm會創建一個子進程,該子進程與jvm建立三個管道連接:標准輸入流、標准輸出流、標准錯誤流。假設該子進程不斷向標准輸入流、標准輸出流寫數據,而jvm不讀取的話,會導致緩沖區塞滿而無法繼續寫數據,最終堵塞在waitFor這里。
現實遇到的情況:這里要一組cmd命令通過
Runtime.getRuntime().exec(cmd)
執行,現在遇到問題是,程序上是順序執行,但是在jvm中感覺就不是了,而是隨機執行,或者說不是按照順序執行,還在驗證;
而且,要執行的命令似乎是連續的不能正確執行,所以現在的解決辦法是寫了一個腳本去執行多條命令,或者取消這些命令之間的相互依賴性。