Как мне остановить процесс, запущенный в IntelliJ, чтобы он вызывал перехваты завершения работы?

#java #intellij-idea #executorservice #interrupt-handling

#java #intellij-идея

Вопрос:

Когда я запускаю свою программу в IntelliJ, а затем использую кнопку «СТОП», она не вызывает созданные мной перехваты завершения работы. Есть ли в IntelliJ способ вызвать их при завершении работы?

Ответ №1:

Вам нужно использовать кнопку выхода на панели запуска, а не кнопку остановки. Обратите внимание, что он будет работать только при запуске и не будет работать при отладке.

Вот скриншот, если вы не можете его найти:

Выход

Эта функция использует код, зависящий от платформы, и в настоящее время работает только в Windows и Linux. Как только IDEA-56273 будет исправлена, эта функция также должна быть доступна на Mac.Это исправлено в версии IDEA 10.5.

Комментарии:

1. хм, я совершенно не понимаю, где находится кнопка «Выход», у вас случайно нет под рукой скриншота? большое спасибо

2. Обновил мой ответ скриншотом.

3. Получение дампов потока и выполнение корректного завершения работы зависит от встроенного компонента, который в настоящее время недоступен для платформы Mac. Обновил мой ответ.

4. Вы знаете, почему это недоступно из отладчика?

5. Работает в Windows с Intellij 13.1.3, а также не имеет этой кнопки.

Ответ №2:

Если вы используете Mac (и я предполагаю, что Linux), получите pid и используйте kill из терминала. Это дополнительный шаг, но он работает для отладки обработчика завершения работы, когда вам нужно.