"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je intercepter Ctrl+C dans une application Java CLI ?

Comment puis-je intercepter Ctrl+C dans une application Java CLI ?

Publié le 2024-11-13
Parcourir:157

How can I intercept Ctrl C in a Java CLI application?

Interception de Ctrl C dans une application Java CLI

Les programmeurs cherchent souvent à intercepter la frappe Ctrl C dans les applications CLI. Cette action, généralement associée à la fin du processus, peut s'avérer utile pour mettre en œuvre un arrêt progressif des applications ou tout autre comportement personnalisé.

Solution multiplateforme

Malheureusement, il est difficile de trouver une solution standardisée. la solution sur différents systèmes d’exploitation s’avère difficile. Cependant, il existe des approches spécifiques à la plate-forme disponibles :

Systèmes de type Unix :

Utilisez SignalHandler pour capturer le signal SIGINT généré par Ctrl C. Voir l'article lié ( au format PDF) pour plus d'informations.

Windows :

Utilisez le Méthode Runtime.getRuntime().addShutdownHook(). Cette approche permet l'exécution de code personnalisé avant la fin complète de la JVM.

Utilisation de la méthode readLine() de la console

Bien qu'il soit possible d'utiliser la méthode readLine() de la console pour lire des caractères à partir d'une entrée standard, il n'a pas la capacité d'intercepter Ctrl C. Envisagez d'utiliser une bibliothèque dédiée ou des mécanismes de bas niveau dépendants du système pour intercepter la frappe.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3