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!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage