Je travaille sur une application console simple et j'ai le problème suivant: Je dois intercepter et exécuter une opération lorsque l'utilisateur ferme l'application (par exemple en cliquant sur CTRL + C dans le shell). D'après ce que j'ai compris, je peux utiliser la méthode addShutdownHook() sur mon runtime (mais je ne suis absolument pas sûr de cette assertion) mais ça ne marche pas pour moi.Comment intercepter et gérer correctement lorsque l'utilisateur quitte une application de console Java?
Je l'ai fait quelque chose comme ceci:
public class MainApp {
public static void main(String[] args) {
Runtime.getRuntime().addShutdownHook(new Thread()
{
@Override
public void run()
{
System.out.println("STOPPED !!!");
}
});
...................................................................
...................................................................
MY APPLICATION BEHAVIOR
...................................................................
...................................................................
}
}
Faire de cette façon, je pensais que l'application doivent commencer et puis lorsque l'utilisateur quitte l'application par CTRL + C il entrer dans la course () méthode définie dans le (nouveau fil)
ce qui se passe est que si je termine ma demande en appuyant sur CTRL + C l'application quitter b La méthode run() n'est pas exécutée et la fin de l'application n'est pas gérée.
Qu'est-ce qui ne va pas? Qu'est-ce que je rate? Comment intercepter correctement lorsque l'utilisateur quitte mon application de console?
@RealSkeptic J'ai fait une mauvaise affirmation, j'ai édité mon article original. Fondamentalement ce qui se passe est que l'application commence normalement mais en la quittant par CTRL + C la fin de l'application n'est pas gérée et la méthode run() n'est pas exécutée –
Vous devrez nous en dire plus sur la partie "APPLICATION BEHAVIOR". Qu'est ce que ça fait? Peut-être qu'il imprime beaucoup de choses, de sorte que vous ne voyez pas l'impression à partir du crochet d'arrêt? – RealSkeptic