gpt4 book ai didi

java - Log4j 挂起我的应用程序

转载 作者:行者123 更新时间:2023-12-02 08:27:34 25 4
gpt4 key购买 nike

我正在尝试从我的应用程序中的外部应用程序获取控制台输出。当我从代码中调用外部应用程序时,它会挂起并显示以下消息:

配置日志记录...

从以下位置配置 log4j:C:\GPAT\log4j.cfg

什么也没发生。我在网上查了一下,看来可能是线程的问题。但我无法修改这个外部应用程序,我必须通过 log4j。我这样读取外部应用程序:


StringBuffer 输出 = new StringBuffer();



<前>尝试{
运行时 rt = Runtime.getRuntime();
进程 proc = rt.exec(GSATCommand);
BufferedReader 输入 = new BufferedReader(new InputStreamReader(proc.getInputStream()));
System.out.println("测试运行...");
字符串行=空;
while ((line = input.readLine()) != null) {
System.out.println(行);//将测试输出写入控制台
输出.追加(行);输出.append("\n");
}
int exitVal = proc.waitFor();
System.out.println("进程退出值:"+ exitVal);
System.out.println("测试执行成功");
} catch (可抛出的t) {
t.printStackTrace();
}

感谢您的阅读。

最佳答案

您需要在单独线程中使用衍生进程中的stdout和stderr,以防止阻塞行为(您的衍生进程将写入缓冲区,如果这些缓冲区没有被清空,则会阻塞您的消费过程)。

参见this answer的第二段了解更多详细信息以及合适修复程序的链接。

关于java - Log4j 挂起我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4193293/

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