Skip to content

Most visited

Recently visited

navigation
Added in API level 1

Process

public abstract class Process
extends Object

java.lang.Object
   ↳ java.lang.Process


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.

Inherited methods

From class java.lang.Object

Public constructors

Process

Added in API level 1
Process ()

Public methods

destroy

Added in API level 1
void destroy ()

Terminates this process and closes any associated streams.

exitValue

Added in API level 1
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
int the exit value of this process.
Throws
IllegalThreadStateException if this process has not terminated.

getErrorStream

Added in API level 1
InputStream getErrorStream ()

Returns an input stream that is connected to the error stream (stderr) of the native process represented by this object.

Returns
InputStream the input stream to read from the error stream associated with the native process.

getInputStream

Added in API level 1
InputStream getInputStream ()

Returns an input stream that is connected to the standard output stream (stdout) of the native process represented by this object.

Returns
InputStream the input stream to read from the output stream associated with the native process.

getOutputStream

Added in API level 1
OutputStream getOutputStream ()

Returns an output stream that is connected to the standard input stream (stdin) of the native process represented by this object.

Returns
OutputStream the output stream to write to the input stream associated with the native process.

waitFor

Added in API level 1
int waitFor ()

Causes the calling thread to wait for the native process associated with this object to finish executing.

Returns
int the exit value of the native process being waited on.
Throws
InterruptedException if the calling thread is interrupted.
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.