我有一個帶有退出按鈕的swing應用程序,該按鈕調用調用System.exit(0)的方法;但由於某種原因,JVM並未關閉。有誰知道什麼可能導致JVM繼續運行?JVM在swing應用程序退出後不關閉
4
A
回答
5
當你調用System.exit()
(而守護進程線程肯定不會)但是關閉掛鉤時,非守護線程不會阻止程序結束†會,如果他們未能終止。
†請參閱Design of the Shutdown Hooks API(最初鏈接的文章現在僅在the wayback machine處可用)。
Swing可能使用關閉掛鉤,但不會阻止程序終止。但是如果你(或者你使用的某個庫)調用Runtime.addShutdownHook()
,你最好確保你的關閉鉤子不會死鎖。
順便說一句,這個問題的一個解決方法是添加一個關閉掛鉤,關閉另一個等待60秒的線程,然後調用Runtime.halt()
。 (您必須關閉另一個線程,否則關機掛接等待六十秒鐘將阻止程序終止六十秒。)
2
也許你有一個仍在運行的線程?
很容易找到哪些線程正在運行以及何時運行。在Netbeans中,在配置文件模式下啓動您的項目(Alt + F2)以實時創建快照。 (Profiler - > View - > Threads)
相關問題
- 1. 後退線程不關閉退出應用程序
- 2. java swing關閉窗口無需退出應用程序
- 3. Java Swing應用程序不會退出
- 4. 後退按鈕關閉應用程序
- 5. NSWindow關閉時退出應用程序
- 6. Java退出程序而不退出JVM
- 7. 最後一個窗口關閉後退出應用程序
- 8. 收到TERM信號後Java Swing應用程序不會退出
- 9. C#應用程序在關閉時不會退出(有時)
- 10. 當應用程序退出時,爲什麼我的Swing應用程序窗口間歇性地不關閉?
- 11. bash:退出程序執行,但在退出腳本後關閉程序
- 12. 防止關閉Java swing應用程序
- 13. unix命令行程序在關閉stdin後不退出
- 14. 在應用程序退出之前,socketpair端應該關閉嗎?
- 15. PhoneGap的處理後退按鈕不關閉應用程序
- 16. Swing程序啓動後立即退出
- 17. 退出事件處理程序強制應用程序關閉
- 18. 關閉GUI而不退出應用程序TCL
- 19. 關閉文件而不退出VIM應用程序?
- 20. 關閉一個窗口,不要退出應用程序
- 21. 當窗口關閉時Caliburn.Micro應用程序不會退出
- 22. 關閉CCommanBar的按鈕不退出應用程序
- 23. RandomAccessFiles不關閉,直到應用程序退出
- 24. 在調用Application.Run()之前關閉(退出)和應用程序?
- 25. 關閉應用程序在Android的硬件後退按鈕
- 26. Codename one:應用程序應該關閉雙擊後退按鈕
- 27. 退出應用程序後退按鍵
- 28. Win32應用程序在關閉對話框時立即退出
- 29. C#在Windows應用程序關閉或退出
- 30. 如何在android中關閉/退出應用程序?
退出時是否有任何非守護程序線程在運行? – 2011-01-12 02:13:14
[可能導致Java在System.exit()之後繼續運行的重複?](http://stackoverflow.com/questions/2614774/what-can-cause-java-to-keep-running-after-system -exit) – 2011-01-12 03:28:12