protected int exec(String command,StringList args){
  try {
    print(command);
    StringList cmd=new StringList();
    cmd=cmd.plus(command);
    if (args != null) {
      for (      String a : args) {
        print(" " + a);
      }
      cmd.addAll(args);
    }
    println("");
    ProcessBuilder pb=new ProcessBuilder();
    pb.command(cmd.array());
    pb.redirectErrorStream(true);
    Process p=pb.start();
    copyInThread(p.getInputStream(),quiet ? null : sysOut);
    p.waitFor();
    return p.exitValue();
  }
 catch (  Exception e) {
    throw new RuntimeException(e);
  }
}

protected int exec ( String command , StringList args ) { try { print ( command ) ; StringList cmd = new StringList ( ) ; cmd = cmd . plus ( command ) ; if ( args != null ) { for ( String a : args ) { print ( " " + a ) ; } cmd . addAll ( args ) ; } println ( "" ) ; ProcessBuilder pb = new ProcessBuilder ( ) ; pb . command ( cmd . array ( ) ) ; pb . redirectErrorStream ( true ) ; Process p = pb . start ( ) ; copyInThread ( p . getInputStream ( ) , quiet ? null : sysOut ) ; p . waitFor ( ) ; return p . exitValue ( ) ; } catch ( Exception e ) { throw new RuntimeException ( e ) ; } }
execute a program in a separate process .
