14.3 | Beenden eines Programms
|
Auch das Beenden eines Programms ist ein Aspekt, bei dem Java eine kleine Besonderheit besitzt.
Bei
Applikationen ist das Beenden recht einfach.
Eine Java-Applikation wird beendet, wenn
- der letzte Thread beendet ist, der kein Daemon-Thread ist,
- die Anwendung mit Aufruf der Methode System.exit() terminiert wird,
- die Anwendung vom Benutzer mit Strg+C auf der Konsole abgebrochen wird,
- die Virtual Machine durch Aufruf der Methode System.halt() gestoppt wird oder
- die Anwendung durch externe Systemaufrufe terminiert wird
(z. B. durch das Beenden über den Windows Task-Manager).
In den ersten drei Fällen wird die Anwendung normal beendet, d. h. die Java Virtual Machine hat hierbei
noch die Zeit »Aufräumarbeiten« zu erledigen. Hierzu kann z. B. das Schreiben von
zwischengepufferten Daten und das Schließen von Dateien gezählt werden. Diese Aufgaben können seit
JDK 1.3
in so genannten »Shutdown-Hooks« durchgeführt werden.
Im Gegensatz hierzu wird die Java Virtual Machine in den letzten
beiden Fällen auf der Stelle zerstört und
die Anwendung hat keine Möglichkeit mehr darauf zu reagieren. Deshalb sollte diese Möglichkeit nur
in Ausnahmefällen zum Beenden der Anwendung benutzt werden.
Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.