Problème : Comment gérer les événements Ctrl C dans une application CLI Java pour empêcher l'arrêt du processus ?
Contexte : Le comportement par défaut de Ctrl C dans les applications CLI est de terminer le processus, mais pour certaines applications, il peut être nécessaire d'intercepter ce signal et d'exécuter des actions spécifiques à la place.
Solution :
Pour intercepter Ctrl C dans une application Java CLI multiplateforme, vous pouvez utiliser l'une des méthodes suivantes :
Runtime Shutdown Hook :
Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { // Your shutdown code that handles Ctrl+C } });
Cette méthode exécutera votre code lorsque la JVM s'arrêtera à la suite de Ctrl C. Cependant, elle peut ne pas fournir un contrôle complet sur la gestion du signal.
SignalHandler :
public class SignalHandler { public static void registerCtrlCHandler() { try { Signal.handle(new Signal("INT"), (s) -> { // Your Ctrl+C handling logic here }); } catch (Exception e) { // Handle exception } } }
À l'aide du SignalHandler du package sun.misc, vous pouvez intercepter le signal SIGINT, qui est déclenché par Ctrl C, et effectuer des actions personnalisées dans votre application. . Cela offre un contrôle plus granulaire sur la gestion du signal.
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!