13

シャットダウン フックを登録するアプリを IntelliJ でデバッグする場合、緑の「再起動」円形矢印ボタンをクリックしても、赤い四角の「停止」ボタンをクリックしても、シャットダウン フックは呼び出されません。どちらの場合も、デバッグ中のアプリはすぐに強制終了されたようです。

(これはHow do I stop a processing running in intelliJ such that it calls the shutdown hooks?の複製ではないことに注意してください。 )

デバッガー プロセスに Mac ターミナルから INT シグナルを「手動で」送信すると、当然、シャットダウン フックが期待どおりに実行されます。しかし、IDE 内で目的の動作を引き起こす構成設定やコントロールを見つけることができませんでした。

4

1 に答える 1

24

JetBrains バグトラッカーの対応する問題をご覧ください。

Idea 14.0.2 でテストしたところ、シャットダウン フックが実行されるように停止ボタンが適切に機能します。

残念ながら、停止ボタンを使用する場合、シャットダウン フック本体でブレークポイントを使用することはできません。これらのブレークポイントは黙って無視されます。

シャットダウン フック コードをデバッグする(つまり、ブレークポイントで停止する) 必要がある場合は、ターミナルからコマンドを呼び出して、IDEA のデバッグで実行されているアプリケーションを正常にシャットダウンできます。

kill -INT <pid>

wherepidはアプリケーションのプロセス ID であり、たとえば次のコマンドで見つけることができます。

ps ax | grep java | grep <MainClassNameYouRun>

この場合、IDEA はシャットダウン フックのブレークポイントで停止します。

于 2014-12-19T01:11:30.230 に答える