„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich Strg+C in einer Java-CLI-Anwendung abfangen?

Wie kann ich Strg+C in einer Java-CLI-Anwendung abfangen?

Veröffentlicht am 13.11.2024
Durchsuche:965

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

Abfangen von Strg C in einer Java-CLI-Anwendung

Programmierer versuchen oft, den Tastendruck Strg C in CLI-Anwendungen abzufangen. Diese Aktion, die normalerweise mit dem Beenden des Prozesses verbunden ist, kann bei der Implementierung eines ordnungsgemäßen Herunterfahrens der Anwendung oder eines anderen benutzerdefinierten Verhaltens hilfreich sein.

Multi-Plattform-Lösung

Leider ist es nicht möglich, eine standardisierte Lösung zu finden Eine Lösung für verschiedene Betriebssysteme erweist sich als Herausforderung. Es stehen jedoch plattformspezifische Ansätze zur Verfügung:

Unix-ähnliche Systeme:

Verwenden Sie SignalHandler, um das von Strg C generierte SIGINT-Signal zu erfassen. Siehe den verlinkten Artikel ( als PDF) für weitere Informationen.

Windows:

Verwenden Sie die Runtime.getRuntime().addShutdownHook()-Methode. Dieser Ansatz ermöglicht die Ausführung von benutzerdefiniertem Code, bevor die JVM vollständig beendet wird.

Verwenden von readLine() der Konsole

Während es möglich ist, die Methode readLine() der Konsole zum Lesen von Zeichen zu verwenden Bei der Standardeingabe fehlt ihm die Möglichkeit, Strg C abzufangen. Erwägen Sie die Verwendung einer dedizierten Bibliothek oder systemabhängiger Mechanismen auf niedriger Ebene zum Abfangen des Tastendrucks.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3