Java estándar de lectura de salida de un programa externo usando inputstream
Estoy tratando de desarrollar una clase que lea la salida estándar de un programa externo (usando una instancia de Process, Runtime.getRuntime (). Exec (cmdLine, env, dir)). El programa toma las entradas del usuario durante el proceso y no continuará hasta que se proporcione una entrada válida; Esto parece estar causando un problema en la forma en que estoy tratando de leer su salida:
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);
}
//...
¿Cómo puedo solucionar esto para que el programa reciba una entrada válida y continúe? Cualquier ayuda para resolver este problema será genial!