Heim > Java > javaLernprogramm > Wie kann man Strg C in einer Java-Befehlszeilenanwendung ordnungsgemäß abfangen?

Wie kann man Strg C in einer Java-Befehlszeilenanwendung ordnungsgemäß abfangen?

Patricia Arquette
Freigeben: 2024-10-29 17:14:02
Original
471 Leute haben es durchsucht

How to Gracefully Intercept Ctrl C in a Java Command Line Application?

Das Abfangen von Strg C in einer Befehlszeilenanwendung

Das Abfangen von Strg C in einer CLI-Java-Anwendung ermöglicht die Ausführung einer anderen Aktion anstelle der Standardverhalten beim Beenden des Prozesses. Hier ist eine Lösung, um dies mithilfe plattformspezifischer Methoden zu erreichen:

Java

Java stellt die Runtime.addShutdownHook()-Methode bereit, die einen Exit-Handler-Thread erstellt, der Code ausführt, wenn Die JVM wird heruntergefahren. Dies fängt jedoch nur Strg C als Zwischenschritt ab, bevor die JVM vollständig geschlossen wird.

Signalverarbeitung

Für die plattformübergreifende Signalverarbeitung können Sie SignalHandler von verwenden das sun.misc-Paket. Dieser Ansatz ermöglicht das Abfangen des durch Strg C verursachten SIGINT-Signals auf Unix-ähnlichen Systemen (einschließlich Linux und Solaris).

Beispiel

<code class="java">import sun.misc.Signal;

public class CtrlCInterceptor {

    public static void main(String[] args) {
        Signal.handle(new Signal("INT"), signal -> {
            // Handle Ctrl+C gracefully
            System.out.println("Ctrl+C pressed. Performing cleanup actions...");
        });
    }
}</code>
Nach dem Login kopieren

Dieser Code registriert einen Handler für das „INT“-Signal (Strg C) und gibt beim Empfang eine Nachricht aus. Sie können alle erforderlichen Bereinigungsaktionen innerhalb des Handler-Blocks durchführen.

Das obige ist der detaillierte Inhalt vonWie kann man Strg C in einer Java-Befehlszeilenanwendung ordnungsgemäß 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