Como lidar com um evento de aplicação de fechamento em Java?
Pergunta
Ter um aplicativo de console, um servidor de aceitar várias conexões de clientes, é possível ter um ouvinte ou um evento em um aplicativo de fechamento? Quero, neste caso, dizer a todos os clientes conectados a delicadamente desconexão antes da aplicação realmente se fecha.
Qualquer solução? Obrigado!
Solução
Você quer usar um gancho de desligamento:
Runtime.getRuntime().addShutdownHook(theHookThread);
Assim, a discussão será executado quando o JVM é desligado, veja aqui para mais detalhes.
Outras dicas
Se fechando aplicativo que você quer dizer o sistema operacional matar o processo do servidor?
Nesta situação não há nenhuma maneira para que o servidor sabe que está sendo morto. Ele vai soltar as conexões existentes.
Se fechando aplicativo que você fornecer um método para o administrador de sistemas para manualmente fechar o servidor (provavelmente, digitando "exit" no console do servidor). Em seguida, o evento de encerramento seria um evento personalizado, e você teria para codificar os ouvintes e notificar a todos o servidor está sendo desligado. Neste cenário, é posible.
Tente adicionar mais detalhes sobre como o servidor é construído ou como ele funciona.