問題タブ [shutdown-hook]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
4772 参照

java - Java アプリケーションを終了する前にコードが確実に実行されるようにする方法

ライセンス数が有限のライセンス サーバーからライセンス オブジェクトを取得/解放する方法を持つ、ライセンス付き API を使用しています。アプリケーションの開始時にライセンスを取得するメソッドを呼び出しますが、プログラムが突然終了またはクラッシュした場合 (例外、SIGTERM など) にライセンスが解放されるようにしたいと考えています。シャットダウン フックは、この問題に対処するための最良の方法ですか?

0 投票する
2 に答える
2926 参照

java - Java のシャットダウン フック内で例外がスローされるとどうなるか

Java でシャットダウン フックの実行中にキャッチされない例外がスローされた場合、jvm は登録されている残りのシャットダウン フック (存在する場合) を実行せずにすぐに終了しますか? javadoc から:

キャッチされなかった例外は、スレッドの ThreadGroup オブジェクトの uncaughtException メソッドを呼び出すことにより、他のスレッドと同様にシャットダウン フックで処理されます。このメソッドのデフォルトの実装は、例外のスタック トレースを System.err に出力し、スレッドを終了します。仮想マシンが終了または停止することはありません。

他のシャットダウンフックを実行する必要があるようです...

フォローアップの質問として、シャットダウン フックで例外をスローする可能性のあるコードを含めることは、おそらくお勧めできませんか? どうしても避けられない場合は、シャットダウン フック内で例外をキャッチすることをお勧めしますか?

0 投票する
2 に答える
7824 参照

java - Java - ロガーをシャットダウンフックで動作させるには?

クラスを使用する特殊なロガークラスがありますjava.util.logging.Logger。このロガーを別のクラスのシャットダウン フックで使用できるようにしたいと考えています。ただし、シャットダウン時にログに記録されないようです。私が読んだことから、問題を引き起こしているロガー自体に対してアクティブ化されたシャットダウンフックが既に存在する可能性があります。

どうすればこれを機能させることができますか? 理想的には、プロセスが終了したときに実際にシャットダウン フックを実行したことがログ ファイルに表示されるようにしたいと考えています。

0 投票する
2 に答える
7142 参照

java - Java強制終了プログラム

終了時にプログラムを強制的に閉じるにはどうすればよいですか。a を呼び出すシャットダウン フックを追加しましたSystem.exit(0)が、実行に問題があるようです。Jframejavaw.exeが閉じられ、シャットダウン フックが実行されても、プロセスはメモリ内で実行され続けます。

さらに、プログラムを実行しているバッチ ファイルを手動で閉じると、Windows は強制終了メッセージをスローします。画像: http://i.imgur.com/gy57OEV.png

0 投票する
1 に答える
733 参照

java - このシャットダウンフックが機能しないのはなぜですか?

これは私の主な方法であり、shutdownhook が含まれています。

問題は、JOptionPaneまったく表示されないことです。代わりに、フレームは閉じますが、アプリ自体は引き続き実行されます。PS。Mac OS Xの+コマンドでイベントが発生しないため、WindowClosingイベントを使用できません。CmdQ

0 投票する
1 に答える
2053 参照

java - Maven 経由で実行された JUnit テストで、シャットダウン フックがコンソールに出力されない

@Test アノテーションでマークされたメソッドを介して Maven によって実行される単純な JUnit テストがあります。ユーザーがCTRL-Cを押した場合にいくつかのテスト結果を出力したいので、シャットダウンフックをそのテストに配置したいと思います。次の行をコーディングします。

それを実行するには、Maven を使用します。

mvn clean test -DtestClassName=com.MyTest

問題は、何も印刷されないことです。System.out.println がまだ機能していないようです。修正するにはどうすればよいですか?

0 投票する
5 に答える
1196 参照

java - Java のシャットダウンフック

システムのシャットダウン時刻をtxtファイルに書き込みたい。shutdownhook スレッドを使用しています。

スレッドのrunメソッドにファイル書き込みの仕組みを書きました。しかし、それは機能していません..これは私のコードです..

0 投票する
1 に答える
698 参照

java - 入力ユーザーが要求された場合の nohup の代替

nohup コマンドで起動する Java アプリケーションがあります。現在、停止コマンドはそのアプリケーションの kill -15 です。このアプリケーションは、ファイルの解析と db アプリケーションへの書き込みであり、kill コマンドをインターセプトし、リソースの解放とデータベースのクリーニングを行うシャットダウン フッカーを備えています...

現在、このクリーニング プロセスでは、各ファイルが解放される入力ユーザー (Y または N) が必要です (基本的に、まだ解析中の各ファイルに対して、アプリケーションはその完了を待つか、プロセスを中断して db でクリーニングを行うように要求します)。

nohup コマンドは標準入力を無視するため、Java 入力リーダーは無視されます。どうすれば整理できますか?

ありがとう!