명령줄 애플리케이션에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!