public abstract class

Process

extends Object
java.lang.Object
   ↳ java.lang.Process

Class Overview

Represents an external process. Enables writing to, reading from, destroying, and waiting for the external process, as well as querying its exit value. Use 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();
   }
 }

Summary

Public Constructors
Process()
Public Methods
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.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public Process ()

Since: API Level 1

Public Methods

public abstract void destroy ()

Since: API Level 1

Terminates this process and closes any associated streams.

public abstract int exitValue ()

Since: API Level 1

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.

public abstract InputStream getErrorStream ()

Since: API Level 1

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.

public abstract InputStream getInputStream ()

Since: API Level 1

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.

public abstract OutputStream getOutputStream ()

Since: API Level 1

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.

public abstract int waitFor ()

Since: API Level 1

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.