>Java >java지도 시간 >Java 명령줄 애플리케이션에서 Ctrl C를 적절하게 가로채는 방법은 무엇입니까?

Java 명령줄 애플리케이션에서 Ctrl C를 적절하게 가로채는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-29 17:14:02478검색

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

명령줄 애플리케이션에서 Ctrl C 가로채기

CLI Java 애플리케이션에서 Ctrl C를 가로채면 프로세스를 종료하는 기본 동작입니다. 다음은 플랫폼별 메서드를 사용하여 이를 달성하는 솔루션입니다.

Java

Java는 다음과 같은 경우 코드를 실행하는 종료 핸들러 스레드를 생성하는 Runtime.addShutdownHook() 메서드를 제공합니다. JVM이 종료 중입니다. 그러나 이는 JVM이 완전히 종료되기 전에 중간 단계로 Ctrl C만 차단합니다.

신호 처리

크로스 플랫폼 신호 처리의 경우 다음에서 SignalHandler를 사용할 수 있습니다. sun.misc 패키지. 이 접근 방식을 사용하면 Unix 계열 시스템(Linux 및 Solaris 포함)에서 Ctrl C로 인해 발생하는 SIGINT 신호를 가로챌 수 있습니다.

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

이 코드는 핸들러를 등록합니다. "INT" 신호(Ctrl C)에 대해 이를 수신하면 메시지를 인쇄합니다. 핸들러 블록 내에서 필요한 정리 작업을 수행할 수 있습니다.

위 내용은 Java 명령줄 애플리케이션에서 Ctrl C를 적절하게 가로채는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.