Я занимаюсь разработкой настольного Java-приложения для Windows и пытаюсь реализовать Windows Restart Manager.Я успешно получаю сообщения Windows для выхода из приложения, и когда я отправляю их вручную, оно просто работает, и приложение закрывается.
Когда я делаю это как часть процесса удаления, процедура выключения в моемприложение запускается, и я даже вижу, что оно вызывает System.exit(0)
, но даже после этого есть процесс, который не останавливается.Мое Java-приложение упаковано в исполняемый файл, используя launch4j, на случай, если это уместно.
То, как я знаю, вызывается System.exit(0)
, заключается в том, что я записываю отладочную информацию в файл и распечатываю System.exit(0)
скоро будет вызов, и я вижу, что приложение завершается успешно или не удается правильно завершить работу.
Используя Process Explorer, я вижу подпроцесс javaw.exe
, и когда происходит процедура выхода,уходит, но родительский процесс остается.Пока работает, это выглядит так:
и после неудачного выхода выглядит так:
Если к процессу подключен удаленный отладчик, на этом этапе отладчик отключается.
Что может быть причиной этого?
Я почти уверен, что это ошибка в launch4j, поэтому я сообщил об этом здесь: https://sourceforge.net/p/launch4j/bugs/185/