我有一個JOGL組件的應用程序。當它關閉使用System.exit(0),我經常得到的異常:優雅地關閉Java OpenGL(JOGL)應用程序
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at sun.java2d.Disposer.run(Disposer.java:125)
at java.lang.Thread.run(Thread.java:619)
我已經看到了這個問題Occasional InterruptedException when quitting a Swing application,但我沒有運行任何非守護線程。我想知道底層JOGL代碼是否將事件持續放入可能導致此錯誤的swing事件隊列中,因爲swing應用只會在事件隊列爲空時正常關閉。
有沒有辦法更乾淨關機?也許以某種方式停止JOGL主循環(我使用的是第三方工具,nasa worldwind,所以我不一定有權訪問運行該應用程序的主Animator)。
編輯:事實證明,這根本不是一個openGL問題。 OpenGL正在正常關閉,並且在我運行的關機鉤子中只有一場比賽。謝謝。
我沒有開始任何動畫師,但有可能是世界風的openGL代碼。我試圖追查下來。 GLAutoDrawable中的display方法是否應該檢查它是否關閉,以便從方法返回? – 2010-06-22 14:58:01
可以幫助,試試看 – 2010-06-22 17:55:46