package javax.util.process; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ProcessUtils { private ProcessUtils() { } /** * Runs a process synchronously described by the given process builder and * processes the lines of its output with the given output processor. */ public static Process runProcess(ProcessBuilder processBuilder, OutputProcessor outputProcessor) throws IOException, InterruptedException { Process process = processBuilder.start(); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream())); String line; while ((line = reader.readLine()) != null) { if (outputProcessor != null) { outputProcessor.processOutput(line); } } process.waitFor(); return process; } }