我正在尝试从 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
我想我错过了一些与标准输出相关的东西,但我已经玩了几个小时了,只是无法正确处理。
谢谢