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 and Description |
|---|
Process() |
| Modifier and Type | Method and Description |
|---|---|
abstract void |
destroy()
Terminates this process and closes any associated streams.
|
abstract int |
exitValue()
Returns the exit value of the native process represented by this object.
|
abstract InputStream |
getErrorStream()
Returns an input stream that is connected to the error stream
(stderr) of the native process represented by this object.
|
abstract InputStream |
getInputStream()
Returns an input stream that is connected to the standard output stream
(stdout) of the native process represented by this object.
|
abstract OutputStream |
getOutputStream()
Returns an output stream that is connected to the standard input stream
(stdin) of the native process represented by this object.
|
abstract int |
waitFor()
Causes the calling thread to wait for the native process associated with
this object to finish executing.
|
public abstract void destroy()
public abstract int exitValue()
IllegalThreadStateException - if this process has not terminated.public abstract InputStream getErrorStream()
public abstract InputStream getInputStream()
public abstract OutputStream getOutputStream()
public abstract int waitFor()
throws InterruptedException
InterruptedException - if the calling thread is interrupted.