У меня есть программа, которая будет работать на компьютере с Windows, и я хочу использовать Runtime.getRuntime().addShutdownHook()
, чтобы корректно завершить работу моей программы и дождаться завершения всех потоков, прежде чем завершить работу.
Я могу вызвать это завершение работыиз Powershell или пакетного скрипта с использованием pid.Java-программа запускается как фоновый процесс, поэтому, насколько я знаю, нет способа передать этому процессу эквивалент команды Ctrl-C.
То, что я пробовал:
Stop-Process
прервал процесс, не вызывая ловушку завершения работы
taskkill
возвратил ошибку, сообщающую, что процесс не может быть завершен принудительно, и что он должен быть принудительно завершен
taskkill /f
прервал процесс без запускакрюк выключения
Как я могу запустить изящное завершение работы Java в Windows?Я читал, что есть способ отправить сигнал через JVM, но я не смог найти способ сделать это в Windows.