//: net/mindview/util/OSExecute.java // Run an operating system command // and send the output to the console. package net.mindview.util; import java.io.BufferedReader; import java.io.InputStreamReader; public class OSExecute { public static void command(String command) { boolean err = false; try { Process process = new ProcessBuilder(command.split(" ")).start(); BufferedReader results = new BufferedReader(new InputStreamReader( process.getInputStream())); String s; while ((s = results.readLine()) != null) System.out.println(s); BufferedReader errors = new BufferedReader(new InputStreamReader( process.getErrorStream())); // Report errors and return nonzero value // to calling process if there are problems: while ((s = errors.readLine()) != null) { System.err.println(s); err = true; } } catch (Exception e) { // Compensate for Windows 2000, which throws an // exception for the default command line: if (!command.startsWith("CMD /C")) command("CMD /C " + command); else throw new RuntimeException(e); } if (err) throw new OSExecuteException("Errors executing " + command); } } // /:~