2010-09-17 6 views
8

Je me demande juste. Dois-je appeler System.exit(0); juste avant la fin de la méthode main d'une application de ligne de commande Java? Si oui, pourquoi? Quelle est la différence de le laisser sortir seul, si je voudrais toujours mettre là 0? Qu'est-ce qui n'est pas nettoyé?Fin application de ligne de commande Java correctement

Merci d'avance.

+1

Voir aussi http://stackoverflow.com/questions/3715967/when-should-we-call-system-exit-in-java – Qwerky

Répondre

16

Non! Vous n'avez pas toujours besoin d'appeler System.exit(0) pour mettre fin à un programme Java. S'il n'y a pas de thread non démon engendré par votre code, l'application se terminera automatiquement à la fin de votre tâche principale. Si votre méthode principale aboutit à engendrer un thread non-démon qui est encore actif en effectuant un traitement alors que votre méthode principale a atteint la fin, alors l'application ne sera pas terminée tant que ces threads ne seront pas terminés. Dans ce cas, si vous appelez explicitement System.exit(0), l'application se terminera immédiatement en supprimant tous vos threads.

Veuillez vous référer à javadoc of Thread qui mentionne les détails.

2

Pas besoin d'appeler System.exit(), juste de retour de main(). C'est l'idiome normal pour sortir d'un programme Java.

System.exit() est généralement appelé à mettre fin à une application au milieu des choses (ce qui signifie généralement un arrêt anormal en raison d'une erreur fatale).

Questions connexes