2014-07-09 14 views
6

Beim Debuggen in IntelliJ, einer App, die Shutdown-Hooks registriert, werden die Shutdown-Hooks nicht aufgerufen, wenn ich auf die grüne kreisförmige Pfeilschaltfläche "Neustart" klicke oder auf die rote Schaltfläche "Stopp" klicke. In beiden Fällen scheint die App-under-debug sofort zwangsweise beendet zu werden.Wie kann ich den IntelliJ-Debugger dazu veranlassen, die Shutdown-Hooks meiner App ausführen zu lassen?

(Hinweis: Dies ist kein Duplikat How do I stop a processing running in intelliJ such that it calls the shutdown hooks? ist)

Als ich „von Hand“ ein INT-Signal aus dem Mac-Terminal des Debuggers Prozess natürlich dann wie erwartet laufen meine Shutdown Haken senden. Ich konnte jedoch keine Konfigurationseinstellungen oder Steuerelemente innerhalb der IDE finden, die das gewünschte Verhalten hervorrufen.

Antwort

9

Bitte werfen Sie einen Blick auf die corresponding issue in JetBrains Bugtracker.

Ich habe gerade getestet, dass auf der Idee 14.0.2 - Stop-Schaltfläche ordnungsgemäß funktioniert, so dass Herunterfahren-Hooks ausgeführt werden.

Leider können Sie in Ihrem Shutdown-Hakenkörper keine Haltepunkte verwenden, wenn Sie die Schaltfläche Stop verwenden: Diese Haltepunkte werden automatisch ignoriert.

Wenn Sie Ihren Shutdown-Hook-Code (dh an Haltepunkten stoppen) debuggen müssen, können Sie ordnungsgemäß herunterzufahren Ihre Anwendung in IDEA Debug ausgeführt wird durch einen Befehl vom Terminal Aufruf:

kill -INT <pid> 

wo pid ist Ihr Prozess-ID der Anwendung und kann gefunden werden, zum Beispiel durch folgenden Befehl ein:

ps ax | grep java | grep <MainClassNameYouRun> 

in diesem Fall IDEA wird an Haltepunkten im Shutdown-Haken zu stoppen.

+1

"Leider können Sie keine Haltepunkte in Ihrem Shutdown-Hakenkörper verwenden." Dafür kam ich hierher. Vielen Dank. – muttonUp

Verwandte Themen