Class Process
public abstract class Process extends Object
ProcessBuilder to create processes.
The child process writes its output to two streams, out and
err. These streams should be read by the parent process using getInputStream() and getErrorStream() respectively. If these
streams are not read, the target process may block while it awaits buffer
space. It isn't sufficient to read the streams in sequence; to avoid blocking
each of the two streams must have its own reader thread. If you are not
interested in differentiating the out and err streams, use redirectErrorStream(true) to
merge the two streams. This simplifies your reading code and makes it easier
to avoid blocking the target process.
Running processes hold resources. When a process is no longer used, the
process should be closed by calling destroy(). This will kill the
process and release the resources that it holds.
For example, to run /system/bin/ping to ping android.com:
Process process = new ProcessBuilder()
.command("/system/bin/ping", "android.com")
.redirectErrorStream(true)
.start();
try {
InputStream in = process.getInputStream();
OutputStream out = process.getOutputStream();
readStream(in);
} finally {
process.destroy();
}
-
Constructor Summary
Constructors Constructor Description Process() -
Method Summary
Modifier and Type Method Description abstract voiddestroy()Terminates this process and closes any associated streams.abstract intexitValue()Returns the exit value of the native process represented by this object.abstract InputStreamgetErrorStream()Returns an input stream that is connected to the error stream (stderr) of the native process represented by this object.abstract InputStreamgetInputStream()Returns an input stream that is connected to the standard output stream (stdout) of the native process represented by this object.abstract OutputStreamgetOutputStream()Returns an output stream that is connected to the standard input stream (stdin) of the native process represented by this object.abstract intwaitFor()Causes the calling thread to wait for the native process associated with this object to finish executing.
-
Constructor Details
-
Process
public Process()
-
-
Method Details
-
destroy
public abstract void destroy()Terminates this process and closes any associated streams. -
exitValue
public abstract int exitValue()Returns the exit value of the native process represented by this object. It is available only when the native process has terminated.- Returns:
- the exit value of this process.
- Throws:
IllegalThreadStateException- if this process has not terminated.
-
getErrorStream
Returns an input stream that is connected to the error stream (stderr) of the native process represented by this object.- Returns:
- the input stream to read from the error stream associated with the native process.
-
getInputStream
Returns an input stream that is connected to the standard output stream (stdout) of the native process represented by this object.- Returns:
- the input stream to read from the output stream associated with the native process.
-
getOutputStream
Returns an output stream that is connected to the standard input stream (stdin) of the native process represented by this object.- Returns:
- the output stream to write to the input stream associated with the native process.
-
waitFor
Causes the calling thread to wait for the native process associated with this object to finish executing.- Returns:
- the exit value of the native process being waited on.
- Throws:
InterruptedException- if the calling thread is interrupted.
-