)
private static void launchProgram(String program, String arguments) throws IOException {
List<String> cmd;
String[] arg;
String line;
InputStream stderr = null;
InputStream stdout = null;
// make list for ProcessBuilder (program, arg1, arg2, ...)
cmd = new ArrayList<String>();
cmd.add(program);
arg = arguments.split("\\s+");
for (String a : arg) {
cmd.add(a);
}
//System.out.println(cmd);
// launch EXE and grab stdout and stderr
Process process = new ProcessBuilder(cmd).start();
stderr = process.getErrorStream ();
stdout = process.getInputStream ();
// clean up if any output in stdout
BufferedReader brCleanUp = new BufferedReader (new InputStreamReader (stdout));
while ((line = brCleanUp.readLine ()) != null) {
System.out.println ("[Stdout] " + line);
}
brCleanUp.close();
// clean up if any output in stderr
brCleanUp = new BufferedReader (new InputStreamReader (stderr));
while ((line = brCleanUp.readLine ()) != null) {
System.out.println ("[Stderr] " + line);
}
brCleanUp.close();
}