docs: public int runCommandLine() throws IOException, InterruptedException
      {
          logRunnerConfiguration();
          
          ProcessBuilder processBuilder = new ProcessBuilder( getCommandLineArguments() );
          processBuilder.directory( workingDirectory );
          processBuilder.environment().putAll( environmentVars );
          Process commandLineProc = processBuilder.start();
  
          final StreamPumper stdoutPumper = new StreamPumper( commandLineProc.getInputStream(), outputConsumer );
          final StreamPumper stderrPumper = new StreamPumper( commandLineProc.getErrorStream(), errorConsumer );
          stdoutPumper.start();
          stderrPumper.start();
          
          if ( standardInputString != null )
          {
              OutputStream outputStream = commandLineProc.getOutputStream();
              outputStream.write( standardInputString.getBytes() );
              outputStream.close();
          }
  
          int exitCode = commandLineProc.waitFor();
          stdoutPumper.waitUntilDone();
          stderrPumper.waitUntilDone();
          
          if ( exitCode == 0 )
          {
              LOGGER.fine( processName + " returned zero exit code"  );
          }
          else 
          { 
              LOGGER.severe( processName + " returned non-zero exit code (" + exitCode + ")" );
          }
          
          return exitCode; 
      }