PumpStreamHandler может захватывать выходные данные процесса в режиме реального времени
ускаю скрипт Python в моем приложении Java с
Process p = Runtime.getRuntime().exec("python script.py");
Этот сценарий выполняется в цикле и отменяется только событием (или взаимодействием с пользователем). Сценарий записывает в выходной цикл каждый цикл цикла некоторый текст, например «12:22:35 - Heartbeat»
while True:
print("Heartbeat")
time.sleep(1)
В моем приложении Java я хочу прочитать этот вывод, как он выглядит. Моя проблема в том, что если я использую BufferReader, он будет ждать, пока процесс не завершится, и после этого он прочитает вывод. Вот как я это читаю:
BufferedReader is = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = is.readLine()) != null)
System.out.println(line);
Как я могу прочитать вывод «вживую»?
Для лучшего понимания: python-скрипт слушает аппаратную кнопку, и когда эта кнопка нажата, выводится какой-то вывод. И в моем Java-приложении я хочу показать это сообщение и отправить его некоторым клиентам.