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

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

Oct 29, 2024 pm 05:14 PM

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 -&gt; {
            // 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 までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte 2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte Mar 07, 2025 pm 06:09 PM

2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか? Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか? Mar 17, 2025 pm 05:35 PM

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか? 高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか? Mar 17, 2025 pm 05:46 PM

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?

node.js 20:キーパフォーマンスが向上し、新機能 node.js 20:キーパフォーマンスが向上し、新機能 Mar 07, 2025 pm 06:12 PM

node.js 20:キーパフォーマンスが向上し、新機能

Iceberg:データレイクテーブルの未来 Iceberg:データレイクテーブルの未来 Mar 07, 2025 pm 06:31 PM

Iceberg:データレイクテーブルの未来

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題修正 Spring Boot Snakeyaml 2.0 CVE-2022-1471問題修正 Mar 07, 2025 pm 05:52 PM

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題修正

Javaで機能的なプログラミング技術を実装するにはどうすればよいですか? Javaで機能的なプログラミング技術を実装するにはどうすればよいですか? Mar 11, 2025 pm 05:51 PM

Javaで機能的なプログラミング技術を実装するにはどうすればよいですか?

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか? キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか? Mar 17, 2025 pm 05:43 PM

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?

See all articles