I am trying to catch on fly Process
output like below:
new Thread() {
public void run() {
final ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "myexec.exe");
p = builder.start();
InputStream i = p.getInputStream();
Reader r = new InputStreamReader(i, "US-ASCII");
int ch = 32;
do {
System.out.print(ch);
} while ((ch = r.read()) != -1);
}
}.start();
As I see, while Process
is running ch == null
, when Process
is terminated all missing chars are suddenly printed.
How can I read output during Process
running?