Intercepter Ctrl C dans une application en ligne de commande
Intercepter Ctrl C dans une application CLI Java permet d'exécuter une action différente à la place de la comportement par défaut de fin du processus. Voici une solution pour y parvenir en utilisant des méthodes spécifiques à la plate-forme :
Java
Java fournit la méthode Runtime.addShutdownHook() qui crée un thread de gestionnaire de sortie qui exécute le code lorsque la JVM s'arrête. Cependant, cela n'interceptera que Ctrl C comme étape intermédiaire avant la fermeture complète de la JVM.
Gestion des signaux
Pour la gestion des signaux multiplateformes, vous pouvez utiliser SignalHandler depuis le paquet sun.misc. Cette approche permet d'intercepter le signal SIGINT provoqué par Ctrl C sur les systèmes de type Unix (y compris Linux et Solaris).
Exemple
<code class="java">import sun.misc.Signal; public class CtrlCInterceptor { public static void main(String[] args) { Signal.handle(new Signal("INT"), signal -> { // Handle Ctrl+C gracefully System.out.println("Ctrl+C pressed. Performing cleanup actions..."); }); } }</code>
Ce code enregistre un gestionnaire pour le signal "INT" (Ctrl C) et imprime un message lorsqu'il est reçu. Vous pouvez effectuer toutes les actions de nettoyage nécessaires dans le bloc de gestionnaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!