我使用EXEC()啓動VLC在Java中的exec()執行的程序:如何知道用戶關閉在Java
Process process = Runtime.getRuntime().exec("/usr/bin/vlc -");
我怎麼能知道什麼時候被關閉VLC窗口? 我知道exitValue()返回進程的退出值。如果進程尚未完成,它將返回IllegalThreadStateException。 所以我想我可以有一個try/catch的while循環來檢查exitValue()是否拋出一個異常,如果沒有,這意味着這個過程已經完成。但這似乎是CPU時間的浪費。
但不waitFor()停止當前的線程,直到過程完成?我不想阻止線程 – gfields
您必須在單獨的線程中啓動您的進程。當這個新線程終止時(例如run()方法結束),它可以向主線程拋出一個事件,通知它該過程已經完成。 – Marcinek
謝謝。我會嘗試。 – gfields