Capture des interruptions Ctrl C dans les applications Java CLI
Dans les applications Java CLI, l'interception du signal Ctrl C (terminant généralement le processus) peut être crucial pour gérer les entrées des utilisateurs avec élégance. Cet article explique comment réaliser cette interception sur plusieurs plates-formes.
Solution multiplateforme
Pour intercepter les signaux Ctrl C de manière cohérente sur Linux, Solaris et Windows, la méthode recommandée L’approche utilise un SignalHandler. La classe sun.misc.SignalHandler fournit cette fonctionnalité. En implémentant SignalHandler#handle et en l'enregistrant pour le signal SIGINT, vous pouvez capturer l'interruption et exécuter du code personnalisé.
Implémentation
Voici un exemple de la façon d'utiliser un SignalHandler en Java :
<code class="java">import sun.misc.Signal; import sun.misc.SignalHandler; public class CtrlCHandler { public static void main(String[] args) { // Register a SignalHandler for SIGINT (Ctrl+C) Signal.handle(new Signal("INT"), new SignalHandler() { @Override public void handle(Signal signal) { // Custom shutdown code here System.out.println("Ctrl+C received, performing shutdown..."); Runtime.getRuntime().exit(0); } }); // Other application logic here... } }</code>
Notez que cette méthode n'interceptera le signal qu'à titre intermédiaire avant l'arrêt complet de la JVM, elle peut donc ne pas convenir à tous les cas d'utilisation.
Alternative :
Si l'utilisation d'un SignalHandler n'est pas réalisable, envisagez d'utiliser la méthode Runtime.getRuntime().addShutdownHook. Cela vous permet d'enregistrer un thread qui sera exécuté lors de l'arrêt de la JVM. Dans ce fil de discussion, vous pouvez gérer l'interruption Ctrl C et effectuer toutes les procédures de nettoyage ou d'arrêt nécessaires.
<code class="java">Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { // Custom shutdown code here System.out.println("JVM shutting down..."); } });</code>
Ces méthodes fournissent des solutions flexibles pour intercepter les signaux Ctrl C dans les applications CLI Java, vous permettant de gérer les entrées utilisateur. gracieusement et effectuez des actions personnalisées avant la fin du processus.
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!