:リアルタイムでRuntime.execでstdoutとstderrを取得する方法は?
Process runJob = null;
try {
runJob = Runtime.getRuntime().exec(args);
InputStream cmdStdErr = null;
InputStream cmdStdOut = null;
cmdStdErr = runJob.getErrorStream();
cmdStdOut = runJob.getInputStream();
String line;
BufferedReader stdOut = new BufferedReader (new InputStreamReader (cmdStdOut));
while ((line = stdOut.readLine()) != null) {
logger.info(line);
}
cmdStdOut.close();
// send error to Ab Initio and exit
BufferedReader br = new BufferedReader(new InputStreamReader(cmdStdErr));
String errMsg="";
while ((line = br.readLine()) != null) {
logger.info(line);
errMsg += line;
}
cmdStdErr.close();
res = runJob.waitFor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
問題は、ジョブが実行されている場合、それは標準出力のための出力が、InputStreamの多くを生成し、標準エラー出力ジョブが実行された後にのみ出力を印刷しておくことです。
リアルタイムでその出力を取得する方法はありますか?ジョブが出力しているときにstderrとstdoutを取得する方法はありますか?
おかげで、 JJ