Как изящно закрыть приложение Java при закрытии консоли Windows?

Этот вопрос задавали раньше, но ответа до сих пор нет.

Сценарий заключается в том, что программа командной строки Java запускается из окна консоли Windows. Программа все еще выполняется, когда нажата кнопка закрытия "X" в окне консоли.

Эффект заключается в том, что программа завершается без выполнения перехватчиков выключения (они на месте и правильно реагируют на Ctrl-C).

Этот ответ на этот вопрос предполагает, что это можно сделать из C.

Существует ли библиотека (возможно, специфичная для платформы), которая позволяет реагировать на событие закрытия и использовать SetConsoleCtrlHandler из Java?


person Gustave    schedule 08.03.2017    source источник
comment
Почему это не должно быть закрыто как дубликат связанного вопроса?   -  person Jiri Tousek    schedule 08.03.2017
comment
@Jiri Tousek: вы не можете пометить вопрос как дубликат вопроса без ответа. (stackoverflow.com/help/duplicates)   -  person Gustave    schedule 08.03.2017
comment
В связанном вопросе уже есть три ответа, которым более 2 лет, но это не главное. Что отличает этот вопрос от связанного, который требует нового вопроса?   -  person Jiri Tousek    schedule 08.03.2017
comment
Возможно, этот ответ - это то, что вы ищете title="перехватчик завершения работы Windows в приложении Java, запускаемом из сценария bat%239277766">stackoverflow.com/questions/9277630/   -  person SubOptimal    schedule 08.03.2017


Ответы (1)


возможно, можно использовать JNA для настройки перехватите сообщение Windows: WM_CLOSE и проверьте, не запускается ли оно дескриптором окна вашего приложения.

person jay liu    schedule 08.03.2017