gpt4 book ai didi

java - 捕获java的输出

转载 作者:行者123 更新时间:2023-11-30 04:22:23 26 4
gpt4 key购买 nike

我正在 try catch java 应用程序的输出,但我遗漏了一些东西。我正在使用以下批处理文件:

@echo off
echo Start of batch
java makeQRCode
echo End of batch

如果我从命令提示符运行批处理文件,我会看到我期望的 3 行。

Start of batch
Here is your java output.
End of batch

当我使用以下代码调用批处理文件时,我只看到第一行和最后一行,但看不到中间的行。

try{
Runtime rt = Runtime.getRuntime();
log.debug("Calling rt.exec...");
Process pr = rt.exec("c:\\adhoc\\java\\qrcode\\makeQRCode.bat");

BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line=null;
while((line=input.readLine()) != null) {
out.print(line);
log.debug(line);
}
input.close();

int exitVal = pr.waitFor();
}catch (Exception e){
log.error("Error generating qr code: " + e.toString());
}

这是运行上述代码时我的日志输出:

2013-05-23 17:16:32,957 DEBUG _getimage - Start of batch
2013-05-23 17:16:33,126 DEBUG _getimage - End of batch

我想我错过了一些与标准输出相关的东西,但我已经玩了几个小时了,只是无法得到正确的结果。

谢谢

最佳答案

查找 java 二进制文件或查找 makeQRCode 类可能存在问题。检查Process的错误流。

BufferedReader error = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
String errorLine = null;
while ((errorLine = input.readLine()) != null) {
System.out.print(errorLine);
}

关于java - 捕获java的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16724573/

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