Java: Como posso reagir ao desligamento do computador no Windows XP?
Pergunta
É possível fazer um manipulador que fará algo quando o usuário desligar o computador com Java no Windows XP (opcional, Win7)? Como?
Obrigado.
Solução
É possível adicionar um gancho de desligamento ao seu programa Java, que é invocado se a JVM estiver desligada por qualquer motivo (outro que não seja incluindo desligamento de O/S. É isso que você quer?System.exit()
)
Usar: java.lang.Runtime.addShutdownHook(Thread)
:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
// shutdown code here
}
});
Outras dicas
Um gancho de desligamento deve fazer o trabalho.
A partir de API Doc:
Registra um novo gancho de desligamento da máquina virtual. A máquina virtual Java é desligada em resposta a dois tipos de eventos:
- O programa sai normalmente, quando o último thread não daemon sai ou quando o método de saída (equivalente, System.Exit) é invocado, ou
- A máquina virtual é encerrada em resposta a uma interrupção do usuário, como digitar ^C ou um evento em todo o sistema, como logoff do usuário ou desligamento do sistema.
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
// do something
}
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow