
Qualquer aplicativo que roda em um console (seja MS-DOS ou Linux) pode ser finalizado ao pressionar CTRL+C. O problema é que este procedimento simplesmente ‘mata’ o processo e finaliza a aplicação bruscamente. Talvez seja necessário que sua aplicação termine algum procedimento como fechar uma conexão com o banco de dados, ou finalizar a gravação de algum arquivo antes de ser fechado. Em Java você consegue capturar o fechamento de uma aplicação de console através do CTRL+C utilizando o método
addShutDownHook.
Rode o exemplo e teste:
public class InterruptApp {
public InterruptApp()
{
Runtime.getRuntime().addShutdownHook(new ShutDownHook());
System.out.println("Starting...");
while(true)
{
try {
System.out.println("Press CTRL+C...");
Thread.sleep(1*1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new InterruptApp();
}
class ShutDownHook extends Thread
{
public void run()
{
System.out.println("Aplication Stoped");
}
}
}
Últimos 5 artigos de Eduardo Costa
De Campinas-SP, bacharel em Sistema de Informação pela Anhanguera Educacional e pós graduado no curso de MBA em Gestão de Projetos e Metodologia do Ensino Superior.
Atualmente trabalha como arquiteto e desenvolvedor Java em empresa de desenvolvimento de software de suporte a tomada de decisão, além de ministrar aulas de Orientação a Objeto, Linguagem Java e XML. Já atuou como líder técnico, coordenador de produto e analista de negócios.
Website - Twitter - Facebook - More Posts
RSS feed para os comentários deste artigo.
Deixe uma Resposta