У меня есть программа на Java, которая открывает калькулятор Windows с помощью ProcessBuilder
. Мне нужно определить, когда программа закрыта пользователем, и сделать так, чтобы появилось сообщение о том, что «Программа была успешно закрыта».
Process p = Runtime.getRuntime().exec("calc.exe");
p.waitFor();
System.out.println("Program has been closed successfully");
Проблема в том, что сообщение появляется при открытии программы.
calc.exe
, вероятно, просто инициализирует приложение в отдельном потоке, а затем завершает работу. Он не возвращает дескриптор созданного им потока, поэтому вы не можете обнаружить закрытие окна. - person 4castle   schedule 01.10.2016