Java lendo a saída padrão de um programa externo usando inputstream
Eu estou tentando desenvolver uma classe que lê a saída padrão de um programa externo (usando uma instância do processo, Runtime.getRuntime (). Exec (cmdLine, env, dir)). O programa usa entradas do usuário durante o processo e não prosseguirá até que uma entrada válida seja fornecida; isso parece estar causando um problema na maneira como estou tentando ler sua saída:
egm.execute(); // run external the program with specified arguments
BufferedInputStream stdout = new BufferedInputStream(egm.getInputStream());
BufferedInputStream stderr = new BufferedInputStream(egm.getErrorStream());
BufferedOutputStream stdin = new BufferedOutputStream(egm.getOutputStream());
int c; //standard output input stream
int e; //standadr error input stream
while((c=stdout.read()) != -1) //<-- the Java class stops here, waiting for input?
{
egm.processStdOutStream((char)c);
}
while((e=stderr.read()) != -1)
{
egm.processStdErrStream((char)e);
}
//...
Como posso corrigir isso para que o programa receba uma entrada válida e continue? Qualquer ajuda para resolver este problema será ótima!