我從Java GUI調用外部應用程序。 Java的代碼如下當用戶點擊GUI中的「運行」按鈕:Java:爲什麼在Java中調用外部程序時會凍結?
Runtime runme = Runtime.getRuntime();
runme.exec("MyApp.bin");
MyApp.bin做一些數學計算,並在它的一些環路 - 沒什麼大不了的。發生什麼事是MyApp.bin卡住了!當我關閉我的Java GUI時,MyApp.bin繼續運行並結束。如果我直接從終端運行MyApp.bin,那麼它運行良好而不會凍結。爲什麼我的應用程序在從Java GUI運行時會凍結,但在關閉Java GUI時會恢復?什麼是Java GUI或Java代碼阻止我的應用程序成功運行?
這聽起來像的問題!我的應用確實輸出了一些數字。看起來我需要查看getOutputStream(),根據您的鏈接。 – user785179 2012-08-17 04:23:20
是的 - 即使你不打算做任何事情,你也需要閱讀輸出。在GUI應用程序中,您通常希望在自己的線程中執行所有這些操作,以免阻塞主事件處理線程。 – 2012-08-17 04:29:56