Ctrl C で Java CLI アプリケーションが終了しないようにするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-25 08:41:28
オリジナル
746 人が閲覧しました

How to Prevent Ctrl C from Terminating Your Java CLI Application?

CLI Java アプリケーションでの Ctrl C のインターセプト

問題: CLI Java アプリケーションで Ctrl C イベントを処理してプロセスの終了を防ぐ方法は?

コンテキスト: CLI アプリケーションにおける Ctrl C のデフォルトの動作はプロセスを終了することですが、特定のアプリケーションでは、この信号をインターセプトし、代わりに特定のアクションを実行する必要がある場合があります。

解決策:

マルチプラットフォーム CLI Java アプリケーションで Ctrl C をインターセプトするには、次のいずれかの方法を使用できます:

ランタイムシャットダウン フック:

Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
        // Your shutdown code that handles Ctrl+C
    }
});
ログイン後にコピー

このメソッドは、Ctrl C の結果として JVM がシャットダウンしたときにコードを実行します。ただし、シグナル処理を完全に制御できるわけではありません。

SignalHandler:

public class SignalHandler {

    public static void registerCtrlCHandler() {
        try {
            Signal.handle(new Signal("INT"), (s) -> {
                // Your Ctrl+C handling logic here
            });
        } catch (Exception e) {
            // Handle exception
        }
    }
}
ログイン後にコピー

sun.misc パッケージの SignalHandler を使用すると、Ctrl C によってトリガーされる SIGINT シグナルをインターセプトし、アプリケーション内でカスタム アクションを実行できます。 。これにより、信号処理をより詳細に制御できるようになります。

以上がCtrl C で Java CLI アプリケーションが終了しないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート