Heim > Java > javaLernprogramm > Hauptteil

Wie kann man Strg C in Java-CLI-Anwendungen plattformübergreifend abfangen?

Barbara Streisand
Freigeben: 2024-10-26 02:00:28
Original
505 Leute haben es durchsucht

How to Intercept Ctrl C in Java CLI Applications Across Platforms?

Abfangen von Strg C in CLI-Java-Anwendungen

In einer Anwendung mit Befehlszeilenschnittstelle (CLI) kann sich das Erfassen von Strg C als unschätzbar wertvoll erweisen. Diese Tastenkombination, die normalerweise den Vorgang beendet, kann umgeleitet werden, um benutzerdefinierte Aktionen auszuführen. Diese Funktionalität plattformübergreifend konsistent zu erreichen, stellt eine Herausforderung dar.

Multi-Plattform-Lösung

Für Unix und Solaris können Sie die SignalHandler-Klasse aus dem sun.misc-Paket verwenden. Diese Klasse ermöglicht das Abfangen des von Strg C generierten SIGINT-Signals.

import sun.misc.Signal;
import sun.misc.SignalHandler;

class CtrlCHandler implements SignalHandler {
    public void handle(Signal signal) {
        // Your custom Ctrl+C handling logic
    }
}

Signal.handle(new Signal("INT"), new CtrlCHandler());
Nach dem Login kopieren

Für Windows kann ein ähnlicher Ansatz mithilfe der Runtime-Klasse und eines Shutdown-Hooks verwendet werden.

Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() {
        // Your custom Ctrl+C handling logic
    }
});
Nach dem Login kopieren

Diese Technik ermöglicht jedoch nur ein zwischenzeitliches Abfangen, bevor die JVM heruntergefahren wird.

Alternativer Ansatz

Anstatt die oben genannten Methoden zu verwenden, sollten Sie eine andere Methode zum Lesen von Zeichen in Betracht ziehen von der Standardeingabe, wie z. B. System.in.read(). Dieser Ansatz bietet direkte Kontrolle über die Eingabeverarbeitung, einschließlich der Möglichkeit, Strg C abzufangen.

Das obige ist der detaillierte Inhalt vonWie kann man Strg C in Java-CLI-Anwendungen plattformübergreifend abfangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!