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>
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!