title: How to add a timeout value when using Java's Runtime.exec()?
body: <p>I have a method I am using to execute a command on the local host.  I'd like to add a timeout parameter to the method so that if the command being called doesn't finish in a reasonable amount of time the method will return with an error code.  Here's what it looks like so far, without the ability to timeout:</p>
  
  <pre><code>public static int executeCommandLine(final String commandLine,
                                       final boolean printOutput,
                                       final boolean printError)
      throws IOException, InterruptedException
  {
      Runtime runtime = Runtime.getRuntime();
      Process process = runtime.exec(commandLine);
  
      if (printOutput)
      {
          BufferedReader outputReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
          System.out.println("Output:  " + outputReader.readLine());
      }
  
      if (printError)
      {
          BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
          System.out.println("Error:  " + errorReader.readLine());
      }
  
      return process.waitFor();
  }
  </code></pre>
  
  <p>Can anyone suggest a good way for me to implement a timeout parameter?</p>