Der AWT-EventQueue-Thread und der AWT-Shutdown-Thread werden in unserer Anwendung nicht heruntergefahren. Gibt es eine Debugging-Technik, um herauszufinden, warum dies nicht der Fall ist? Gibt es spezielle Dinge, auf die man achten sollte?
Antwort
Zu viele Anzeigen?Wenn Sie meinen, dass die JVM nicht ordnungsgemäß beendet wird, nachdem alle Fenster geschlossen wurden, dann beachten Sie die folgenden Punkte:
- Prüfen Sie, ob ALLE Fenster ordnungsgemäß entsorgt wurden und nicht nur unsichtbar gemacht wurden; das schließt auch das unsichtbare Fenster ein, das von Swing (oder AWT) als Eigentümer von Dialogen ohne Eigentümer erstellt wurde. Hierfür können Sie prüfen
Window.getWindows()
- stellen Sie sicher, dass Sie keine aktiven
Thread
(außer Daemons) nach dem Beenden aller Windows - stellen Sie sicher, dass Ihre Anwendung nicht von Java Web Start gestartet wurde, denn in diesem Fall müssen Sie die
System.exit(0)
(das ist ein bekannter Fehler von JWS)
Ich hoffe, dies hilft bei der Beantwortung Ihrer Frage.
Außerdem gab es auch diese SO-Frage kürzlich über die Garbage Collection von Swing Windows.