package sample; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.Map; /** * Simple usage example for class java.lang.ProcessBuilder under Windows (XP, Vista, ...) */ public class ProcessBuilderTest { /** * @param args no arguments needed */ public static void main(String[] args) { ProcessBuilder pb = new ProcessBuilder(); pb.redirectErrorStream(true); pb.directory(new File("C:/")); pb.command("cmd", "/c", "dir"); //Map env = pb.environment(); //env.put("PB_SAMPLE_VAR", "Hello World!"); //pb.command("cmd", "/c", "echo", "%PB_SAMPLE_VAR%"); Process p; try { p = pb.start(); } catch (Exception e) { e.printStackTrace(); System.exit(1); return; } System.out.println("stdout/stderr of command: " + pb.command()); System.out.println("-------------------------"); InputStreamReader isr = null; BufferedReader br = null; try { isr = new InputStreamReader(p.getInputStream()); br = new BufferedReader(isr); String line; for (;;) { try { line = br.readLine(); if (line == null) { break; } System.out.println(line); } catch (IOException e) { e.printStackTrace(); break; } } } finally { if (br != null) { try { br.close(); } catch (Exception ex) { /* */ } } } int exitcode = -1; try { exitcode = p.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); exitcode = -42; } System.out.println("-------"); System.out.println("exitcode: " + exitcode); } }