Читать / ловить стандартное сообщение в другом приложении
У меня есть приложение A, которое пишет сообщение stdout. Теперь я создам второе приложение B, которое читает стандартный вывод из A.
Я не хочу создавать файл, сообщение будет записано в консоли и должно быть прочитано из консоли.
Я знаю, что у меня есть некоторые возможности для чтения из консоли (Scanner, System.console(), BufferedInputstream), но как я могу поймать стандартный вывод из другого приложения?
2 ответа
Вы можете попробовать общение через сокеты. Это руководство кажется полезным http://cs.lmu.edu/~ray/notes/javanetexamples/
Если ваша программа B выполнила программу A (либо через ProcessBuilder.start()
или же System.exec()
) у тебя есть Process
пример. Тогда вы можете использовать Process.getInputStream()
получить входной поток, который подключен к стандартному выходному потоку программы А.
В противном случае, не существует независимого от платформы способа получить выходные данные другой программы. Вам нужно будет использовать какую-то другую форму общения.