有個如下類似的應用,使用Runtime call一個指令行來啟動一個Apache伺服器,在“确定伺服器啟動後”打開一個TestPage.html測試。
問題就是Runtime調用指令預設情況下很快就傳回了,接下來打開的測試頁面就會提示連接配接不到伺服器。要保證打開浏覽器的時候伺服器已經正确能用了。
Process process = Runtime.getRuntime().exec(shell);
代碼能夠傳回一個Process,有個方法waitFor()可以阻塞并等待Process傳回。其DOC如下:
[i]causes the current thread to wait, if necessary, until the process represented by this Process object has terminated.[/i]
但是這個waitFor()方法在我的應用裡面會導緻永遠阻塞,因為Process是為了啟動一個Server,一當啟動,這個Server就一直Running了,而Process就的waitFor()就隻能一直阻塞了。
是以必須有另外的方法來判斷,而不能僅依靠Process本身提供的狀态和方法。
一個比較笨的方法,代碼如下:
一個接口:
-------
關鍵問題就是無法通過Process對象本身來決定執行狀态。是以有類似的輔助判斷方法:
-----
其他方法?