public Channel start() throws Exception { System.out.println("forking a new process"); // proc = Runtime.getRuntime().exec("java -Xdebug // -Xrunjdwp:transport=dt_socket,server=y,address=8000 hudson.remoting.Launcher"); System.out.println(getClasspath()); proc = Runtime.getRuntime() .exec(new String[] {"java", "-cp", getClasspath(), "hudson.remoting.Launcher"}); copier = new Copier("copier", proc.getErrorStream(), System.out); copier.start(); executor = Executors.newCachedThreadPool(); OutputStream out = proc.getOutputStream(); if (RECORD_OUTPUT) { File f = File.createTempFile("remoting", ".log"); System.out.println("Recording to " + f); out = new TeeOutputStream(out, new FileOutputStream(f)); } return new Channel("north", executor, proc.getInputStream(), out); }