Auf Thema antworten

Hallo,


ich erzeuge in Java einen Prozess (in C geschriebenes Programm), welcher auf stdout (c-printf) Daten ausgibt.

Diese Daten möchte ich nun lesen.

Allerdings kommt in meinem Javaprogramm nichts an. Woran liegt das?


[code=Java]        Process process = null;

        ProcessBuilder pb = new ProcessBuilder(..pfad..);

        try {

            process = pb.start();

            System.out.println("Process started");

        } catch (IOException e) {

            System.out.println("Could not start process");

            System.exit(1);

        }

       

        inStream = process.getErrorStream();

        stdout = process.getInputStream();


   

        int b;

        try {

            while((b = stdout.read()) != -1) {

                System.out.print((char)b);

            }

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }[/code]


Dieses Beispiel geht auch nicht: Process: getInputStream() : Processjava.langJava by API



Kennt einer ne Lösung?

Hab irgendwann mal gelesen, dass man die Prozess-Streambehandlung nur in einem extra Thread machen kann... kann mich aber nicht mehr genau erinnern.


Danke



Oben