Java liest die Standardausgabe eines externen Programms mithilfe von Inputstream
Ich versuche, eine Klasse zu entwickeln, die die Standardausgabe eines externen Programms liest (unter Verwendung einer Instanz von Process, Runtime.getRuntime (). Exec (cmdLine, env, dir)). Das Programm nimmt während des Vorgangs Benutzereingaben entgegen und fährt erst mit einer gültigen Eingabe fort. Dies scheint ein Problem in der Art und Weise zu verursachen, in der ich versuche, die Ausgabe zu lesen:
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);
}
//...
Wie kann ich das beheben, damit das Programm eine gültige Eingabe aufnimmt und fortfährt? Jede Hilfe zur Lösung dieses Problems wird großartig sein!