Como capturar os dados retornados de um EXE extraído de um lote?
Eu tenho um arquivo em lotes que precisa ser chamado de um programa java. O arquivo em lote invoca um EXE. O programa EXE retornará dados que eu quero manipular. Se o EXE imprimir dados no console, será possível capturá-lo da seguinte maneira. Mas quando o EXE éretornando dados após a sua conclusão, não sou capaz de capturá-lo.
ProcessBuilder pb = new ProcessBuilder("foo.bat");
Process p = pb.start();
int exitValue = p.waitFor();
BufferedReader reader;
// System.out.println("Exit Value" + exitValue);
if (exitValue == 0) {
reader = new BufferedReader(new InputStreamReader(p
.getInputStream()));
} else {
reader = new BufferedReader(new InputStreamReader(p
.getErrorStream()));
}
StringBuffer sb = new StringBuffer();
String temp = reader.readLine();
while (temp != null) {
sb.append(temp);
temp = reader.readLine();
}
reader.close();
System.out.println(sb.toString());
Como eu preciso para capturar os dados retornados pelo EXE executado a partir de um arquivo em lotes?
O EXE é basicamente um programa em C. Quando eu invoco o programa em C, o método principal me retorna os dados, que eu quero manipular.