gpt4 book ai didi

java - 使用 Java 实时重定向控制台输出流

转载 作者:太空宇宙 更新时间:2023-11-04 06:13:37 25 4
gpt4 key购买 nike

我有一个 jar 文件,但没有源代码(它相对较旧)。我知道当它运行时,它充当服务器(传入和传出连接),并吐出大量控制台输出。我想要做的是让另一个 java 应用程序使用 exec 启动它,并重定向自身内部的流,以便它可以监视 jar 输出中的某些关键字或时间戳。该计划的目的是跟踪某些事件并提供事件发生时间的整体情况,并“学习” future 发生事件时如何 react 。

我猜测,从我迄今为止所做的阅读来看,棘手的部分是实时获取数据,而不是在流关闭之后获取数据。

我该如何去做呢?

最佳答案

使用 zip 程序解压您的 jar。查看 list 中的主类

创建一个新类

public class MyLogger {
public static void main (String args[]) throws Exception {
System.setOut(new PrintStream("out.txt"));
System.setErr(new PrintStream("err.txt"));
OriginalClassName.main(args);
}
}

现在只需构建您的类(将 Javan 类路径设置为您没有代码的原始 .jar ),然后完成后使用 jar 工具创建一个新的 .jar 文件,并将您的类设置为 list 中的主要类

现在,当您运行时,您可以使用像 tail 这样的工具(带有 -f 参数)将文件内容打印到控制台,同时实时写入文件。 Tail 可在 Linux 和其他 Unix 平台上使用。对于 Windows 安装,例如cygwin。

关于java - 使用 Java 实时重定向控制台输出流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28375660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com