ホームページ >Java >&#&チュートリアル >複数のプラットフォームにわたる Java CLI アプリケーションで Ctrl C をインターセプトする方法
コマンド ライン インターフェイス (CLI) アプリケーションでは、Ctrl C のキャプチャが非常に重要であることがわかります。このキーの組み合わせは通常プロセスを終了しますが、カスタム アクションを実行するためにリダイレクトできます。この機能をプラットフォーム間で一貫して実現するには、課題が生じます。
Unix および Solaris の場合は、sun.misc パッケージの SignalHandler クラスを利用できます。このクラスは、Ctrl C によって生成された SIGINT シグナルのインターセプトを有効にします。
import sun.misc.Signal; import sun.misc.SignalHandler; class CtrlCHandler implements SignalHandler { public void handle(Signal signal) { // Your custom Ctrl+C handling logic } } Signal.handle(new Signal("INT"), new CtrlCHandler());
Windows の場合は、Runtime クラスとシャットダウン フックを使用して同様のアプローチを採用できます。
Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { // Your custom Ctrl+C handling logic } });
ただし、この手法では、JVM がシャットダウンする前の中間インターセプトのみが可能です。
上記のメソッドを使用する代わりに、文字を読み取るための別のメソッドを利用することを検討してください。 System.in.read() などの標準入力から。このアプローチでは、Ctrl C をインターセプトする機能など、入力処理を直接制御できます。
以上が複数のプラットフォームにわたる Java CLI アプリケーションで Ctrl C をインターセプトする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。