Come gestire un evento di chiusura dell'applicazione in Java?
Domanda
Avere un'applicazione console, un server che accetta più connessioni da client, è possibile avere un ascoltatore o un evento di chiusura dell'applicazione?Voglio, in questo caso, dire a tutti i client connessi scollegare delicatamente prima dell'applicazione davvero si chiude.
Qualsiasi soluzione?Grazie!
Soluzione
Si desidera utilizzare un gancio di arresto:
Runtime.getRuntime().addShutdownHook(theHookThread);
Quindi, il thread verrà eseguito quando la JVM si spegne, vedere qui per i dettagli.
Altri suggerimenti
Se entro la chiusura dell'applicazione si intende il sistema operativo uccidere il processo del server?
In quella situazione non c'è modo per il server a sapere che è stato ucciso.Lascia cadere le connessioni esistenti.
Se entro la chiusura dell'applicazione è di fornire un metodo per il sys admin di chiudere manualmente il server ( probabilmente digitando "exit" al console del server ).Quindi l'evento di chiusura sarebbe un evento personalizzato, e il codice di ascoltatori e di comunicare a tutti il server è in fase di arresto.In questo scenario è possibile.
Prova ad aggiungere più dettagli su come il vostro server è costruito o come funziona.