Как мне реализовать плавное завершение в Java?

Скажем, у меня запущено приложение в терминале Linux, и я нажимаю «CTRL + C» на клавиатуре, чтобы убить процесс, который завершит программу Java.

Есть ли способ перехватить этот «запрос» в моем Java-приложении, чтобы я мог корректно завершить его и освободить все ресурсы / журналы записи. У меня работает несколько разных потоков, если это влияет на ответ.

Я знаю, что у вас есть addShutDownHook, но, как написано в документации по Java, это не так. t вызывается при определенных обстоятельствах, например, сигнал уничтожения от "CTRL + C" в linux ... есть ли другие способы?

Runtime.getRuntime().addShutdownHook(new Thread()
{
    public void run ()
    {
        // TODO: implement graceful shutdown here.
    }
});
11
задан rgettman 16 February 2018 в 00:14
поделиться