2010-09-17 6 views
8

Mi chiedo solo. Devo chiamare lo System.exit(0); immediatamente prima del termine del metodo main di un'applicazione della riga di comando Java? Se è così, perché? Qual è la differenza dal lasciarlo uscire da solo, se lo inserissi sempre lì 0? Cosa non viene pulito?Terminare correttamente l'applicazione della riga di comando Java

Grazie in anticipo.

+1

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

risposta

16

No! Non è sempre necessario chiamare System.exit(0) per terminare un programma java. Se non ci sono thread non demone generati dal codice, l'applicazione si interromperà automaticamente al termine dell'attività principale del thread.

Se il metodo principale comporta la generazione di alcuni thread non daemon che sono ancora in vita eseguendo alcune elaborazioni mentre il metodo principale ha raggiunto la fine, l'applicazione non verrà terminata fino al completamento di tali thread. In questo caso, se chiami esplicitamente System.exit(0), l'applicazione terminerà immediatamente uccidendo tutti i tuoi thread.

Si prega di fare riferimento javadoc of Thread che menziona i dettagli.

2

Non è necessario chiamare System.exit(), è sufficiente tornare da main(). Questo è il normale idioma per uscire da un programma Java.

System.exit() viene in genere chiamato per terminare un'app nel mezzo di cose (che in genere significa interruzione anomala a causa di un errore irreversibile).

Problemi correlati