ホームページ >Java >&#&チュートリアル >Java コマンドライン アプリケーションで Ctrl C を適切にインターセプトする方法

Java コマンドライン アプリケーションで Ctrl C を適切にインターセプトする方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-29 17:14:02467ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。