Hi,
ich habe eine Klasse, welche ein Programm starten soll und dabei dessen StdOut und ErrOut überwachen soll (in diesem Fall einfach nur ausgeben.)
Folgendermaßen sieht mein Code derzeit aus:
Das Problem ist, dass das, was das aufgerufene Programm ausgibt, erst nach dem Beenden des Programms auf der Konsole ausgegeben wird.
Weiss jemand woran das liegt, bzw. wie ich das beheben kann?
Ich habe schon versucht die Buffer-Size vom BufferedReader zu verringern oder direkt auf dem InputStream zu arbeiten, doch alles hat nicht funktioniert
ich habe eine Klasse, welche ein Programm starten soll und dabei dessen StdOut und ErrOut überwachen soll (in diesem Fall einfach nur ausgeben.)
Folgendermaßen sieht mein Code derzeit aus:
Code:
ProcessBuilder pb = new ProcessBuilder(this.getCommand());
Process p = pb.start();
BufferedReader out = new BufferedReader(new InputStreamReader(p.getInputStream()),100);
while ((String line = out.readLine()) != null) {
System.out.println(line);
}
Weiss jemand woran das liegt, bzw. wie ich das beheben kann?
Ich habe schon versucht die Buffer-Size vom BufferedReader zu verringern oder direkt auf dem InputStream zu arbeiten, doch alles hat nicht funktioniert