有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么我的stdout不能使用ZeroTurnound重定向输出实时流式传输

我使用的是ZeroTurnound zt exec库(https://github.com/zeroturnaround/zt-exec),我不明白为什么输入时输出行没有被处理。它将等到脚本完成后再立即将它们全部吐出。这是他们被缓冲的地方吗?看起来这会很麻烦

尝试使用“开始”而不是“执行”,并查看了缓冲区大小,但无法找出问题所在

这个答案似乎有我想要的,但我仍然明白这个问题 Read live output of process in java

Java代码:

       new ProcessExecutor().command("python", "printTest.py")
                .redirectOutput(new LogOutputStream() {
                    @Override
                    protected void processLine(String line) {
                        logger.info("**** Line:" + line);
                        webSocketActorRef.tell(String.format("line:%s", line), self());
                    }
                })
                .execute();

python代码:

print("**********INFO:MOCK SCRIPT STARTING **********")
print("STATUS: Starting the Mock simulation")

time.sleep(5)
print("STATUS: Message 1")
time.sleep(5)
print("STATUS: Message 2")
time.sleep(5)
print("STATUS: Message 3")

共 (0) 个答案