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
stdout に関連する何かが欠けていると思いますが、何時間も遊んでいて、正しく理解できません。
ありがとう