This class launches operating system
processes, producing Process objects. Specify the
operating system command when you invoke the ProcessBuilder(
) constructor or with the command(
) method. Commands are specified
with one or more strings, typically the filename of the executable to
run followed by the command-line arguments for the executable.
Specify these strings in a List, a
String[ ], or, most conveniently, using a
variable-length argument list of strings.
Before launching the command you have specified, you can configure
the ProcessBuilder. Query the current working
directory with the no-argument version of directory(
) and set it with the
one-argument version of the method. Query the mapping of environment
variables to values with the environment(
) method. You can alter the
mappings in the returned Map to specify the
environment you want the child process to run in. Pass
TRue to redirectErrorStream(
) if you would like both the
standard output and the standard error stream of the child process to
be merged into a single stream that you can obtain with
Process.getInputStream( ). If you do so, you do
not have to arrange to read two separate input streams to get the
output of the process.
Once you have specified a command and configured your
ProcessBuilder as desired, call the
start( ) method
to launch the process. You then use methods of the returned
Process to provide input to the process, read
output from the process, or wait for the process to exit.
start( ) may throw an
IOException. This may occur, for example, if the
executable filename you have specified does not exist. The
command( ) and directory( )
methods do not perform error checking on the values you provide them;
these checks are performed by the start( ) method,
so it is also possible for start( ) to throw
exceptions based on bad input to the configuration methods.
Note that a ProcessBuilder can be reused: once you
have established a working directory and environment variables, you
can change the command( ) and launch multiple
processes with repeated calls to start( ).
public final class ProcessBuilder {
// Public Constructors
public ProcessBuilder(java.util.List<String> command);
public ProcessBuilder(String... command);
// Public Instance Methods
public java.util.List<String> command( );
public ProcessBuilder command(String... command);
public ProcessBuilder command(java.util.List<String> command);
public java.io.File directory( );
public ProcessBuilder directory(java.io.File directory);
public java.util.Map<String,String> environment( );
public boolean redirectErrorStream( );
public ProcessBuilder redirectErrorStream(boolean redirectErrorStream);
public Process start( ) throws java.io.IOException;
}