Class Process
- java.lang.Object
-
- java.lang.Process
-
public abstract class Process extends Object
Represents an external process. Enables writing to, reading from, destroying, and waiting for the external process, as well as querying its exit value. UseProcessBuilderto create processes.The child process writes its output to two streams,
outanderr. These streams should be read by the parent process usinggetInputStream()andgetErrorStream()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, useredirectErrorStream(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/pingto pingandroid.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
All Methods Instance Methods Abstract Methods 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.
-
-
-
Method Detail
-
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
public abstract InputStream 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
public abstract InputStream 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
public abstract OutputStream 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
public abstract int waitFor() throws InterruptedExceptionCauses 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.
-
-