Возможно ли перехватить STDOUT любого другого процесса и передать их потоком akka?перехват STDOUT и поток через akka
Благодаря
Arun
Возможно ли перехватить STDOUT любого другого процесса и передать их потоком akka?перехват STDOUT и поток через akka
Благодаря
Arun
Пожалуйста, не сразу крест свои вопросы здесь and akka-user, что делает его труднее отслеживать ответы на вопросы. Это нормально, чтобы перекрестный пост, если через некоторое время вы не получили ответа, но, пожалуйста, не делайте этого немедленно.
Для того, чтобы «перехватить» stdout в Java, вы можете setOut
на объекте System
. Он принимает PrintWriter, который мы в состоянии создать с помощью обертывания OutputStream «мост», который Akka Streams обеспечивает, вот как:
val is: OutputStream = StreamConverters.asOutputStream()
.to(Sink.foreach(println)) // your logic pipeline here
.run()
System.setOut(new PrintStream(is))
Это процесс, который вы бы запустить из кода лестницы? Например, для потока stdout для команды 'ls': ' val stdout: Source [Message, NotUsed] = Source.fromIterator [Message] (() => Process ("ls"). LineStream.toIterator.map (line => TextMessage.Strict (строка))) ' – ecoe