У меня есть программа на Java, которая запускает другую программу (Python) как процесс.
Process p = Runtime.getRuntime().exec("program.py", envp);
Если java-программа завершает обработку, завершается и процесс Python. Команда finish
отправляет сигнал процессу Python закрыть его.
В нормальной ситуации процесс закрывается следующим образом:
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
output.write("@EOF\n");
output.flush();
Однако, когда Java-программа дает сбой, процесс не закрывается. Команда закрытия не отправляется из-за сбоя. Можно ли автоматически завершать процесс каждый раз, когда программа завершается?