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