## org.biojava.utils
Class ProcessTools

    java.lang.Object
      org.biojava.utils.ProcessTools

Deprecated. preferable to use org.biojava.utils.ExecRunner or the org.biojava.utils.process package.

    public class ProcessTools

extends Object

Convenience methods for running external processes. This class offers wrappers around the `java.lang.Process` API, but hides away the details of managing threads and process I/O.

### Example

     StringWriter out = new StringWriter();
     ProcessTools.exec(
              new String[] {"/usr/bin/wc", "-w"},
              "The quick brown fox jumps over the lazy dog",
              out,
              null
     );
     int numWords = Integer.parseInt(out.toString().trim());

Since:
  1.4
Author:
  Thomas Down, Francois Pepin

Method Summary
`static int` `exec(String[] args, Reader input, Writer stdout, Writer stderr)` Deprecated. Execute the specified command and wait for it to return.
`static int` `exec(String[] args, String[] envp, File dir, Reader input, Writer stdout, Writer stderr, long timeout)` Deprecated. Execute the specified command and wait for it to return, or kill it if the specified timeout expires first.
`static int` `exec(String command, Reader input, Writer stdout, Writer stderr)` Deprecated. Execute the specified command and wait for it to return.
`static int` `exec(String command, String[] envp, File dir, Reader input, Writer stdout, Writer stderr, long timeout)` Deprecated. Execute the specified command and wait for it to return.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### exec

    public static int exec(String[] args,
                           Reader input,
                           Writer stdout,
                           Writer stderr)
                    throws IOException

  Deprecated.
  Execute the specified command and wait for it to return.

  Parameters:
    `args` - the command line to execute.
    `input` - data to present to the process' standard input, or `null` if the process does not require input.
    `stdout` - a `Writer` which will be filled with data from the process' output stream, or `null` to ignore output.
    `stderr` - a `Writer` which will be filled with data from the process' error stream, or `null` to ignore output.
  Returns:
    the process' return code.
  Throws:
    `IOException`

### exec

    public static int exec(String[] args,
                           String[] envp,
                           File dir,
                           Reader input,
                           Writer stdout,
                           Writer stderr,
                           long timeout)
                    throws IOException,
                           ProcessTimeoutException

  Deprecated.
  Execute the specified command and wait for it to return, or kill it if the specified timeout expires first.

  Parameters:
    `args` - the command line to execute.
    `envp` - environment variables for the child process, or `null` to inherit the current set.
    `dir` - working directory for the child process, or `null` to inherit the current directory.
    `input` - data to present to the process' standard input, or `null` if the process does not require input.
    `stdout` - a `Writer` which will be filled with data from the process' output stream, or `null` to ignore output.
    `stderr` - a `Writer` which will be filled with data from the process' error stream, or `null` to ignore output.
    `timeout` - maximum run-time (in milliseconds) for the child process. A value of 0 indicates no limit.
  Returns:
    the process' return code.
  Throws:
    `IOException` - if an error occurs while starting or communicating with the process
    `ProcessTimeoutException` - if the child process was killed because its timeout had expired.

### exec

    public static int exec(String command,
                           Reader input,
                           Writer stdout,
                           Writer stderr)
                    throws IOException

  Deprecated.
  Execute the specified command and wait for it to return. This is the simplified version that tries to be nice and make your life easier. If you know exactly what you want, you might want to use exec(String[],...) instead.

  Parameters:
    `command` - the command line to execute.
    `input` - data to present to the process' standard input, or `null` if the process does not require input.
    `stdout` - a `Writer` which will be filled with data from the process' output stream, or `null` to ignore output.
    `stderr` - a `Writer` which will be filled with data from the process' error stream, or `null` to ignore output.
  Returns:
    the process' return code.
  Throws:
    `IOException` - if an error occurs while starting or communicating with the process

### exec

    public static int exec(String command,
                           String[] envp,
                           File dir,
                           Reader input,
                           Writer stdout,
                           Writer stderr,
                           long timeout)
                    throws IOException,
                           ProcessTimeoutException

  Deprecated.
  Execute the specified command and wait for it to return. This is the simplified version that tries to be nice and make your life easier. If you know exactly what you want, you might want to use exec(String[],...) instead.

  Parameters:
    `command` - the command line to execute.
    `input` - data to present to the process' standard input, or `null` if the process does not require input.
    `stdout` - a `Writer` which will be filled with data from the process' output stream, or `null` to ignore output.
    `stderr` - a `Writer` which will be filled with data from the process' error stream, or `null` to ignore output.
    `timeout` - maximum run-time (in milliseconds) for the child process. A value of 0 indicates no limit.
  Returns:
    the process' return code.
  Throws:
    `IOException` - if an error occurs while starting or communicating with the process
    `ProcessTimeoutException` - if the child process was killed because its timeout had expired.