java.lang

Class Process

public abstract class Process extends Object

An instance of a subclass of Process is created by the Runtime.exec methods. Methods in Process provide a means to send input to a process, obtain the output from a subprocess, destroy a subprocess, obtain the exit value from a subprocess, and wait for a subprocess to complete.

This is dependent on the platform, and some processes (like native windowing processes, 16-bit processes in Windows, or shell scripts) may be limited in functionality. Because some platforms have limited buffers between processes, you may need to provide input and read output to prevent the process from blocking, or even deadlocking.

Even if all references to this object disapper, the process continues to execute to completion. There are no guarantees that the subprocess execute asynchronously or concurrently with the process which owns this object.

Since: 1.0

See Also: (String[], String[], File)

UNKNOWN: updated to 1.4

Constructor Summary
Process()
Empty constructor does nothing.
Method Summary
abstract voiddestroy()
Kills the subprocess and all of its children forcibly.
abstract intexitValue()
When a process terminates there is associated with that termination an exit value for the process to indicate why it terminated.
abstract InputStreamgetErrorStream()
Obtain the input stream that receives data from the subprocess.
abstract InputStreamgetInputStream()
Obtain the input stream that receives data from the subprocess.
abstract OutputStreamgetOutputStream()
Obtain the output stream that sends data to the subprocess.
abstract intwaitFor()
The thread calling waitFor will block until the subprocess has terminated.

Constructor Detail

Process

public Process()
Empty constructor does nothing.

Method Detail

destroy

public abstract void destroy()
Kills the subprocess and all of its children forcibly.

exitValue

public abstract int exitValue()
When a process terminates there is associated with that termination an exit value for the process to indicate why it terminated. A return of 0 denotes normal process termination by convention.

Returns: the exit value of the subprocess

Throws: IllegalThreadStateException if the subprocess has not terminated

getErrorStream

public abstract InputStream getErrorStream()
Obtain the input stream that receives data from the subprocess. This is the STDERR of the subprocess. When implementing, you should probably use a buffered stream.

Returns: the input stream that pipes data from the process error output

getInputStream

public abstract InputStream getInputStream()
Obtain the input stream that receives data from the subprocess. This is the STDOUT of the subprocess. When implementing, you should probably use a buffered stream.

Returns: the input stream that pipes data from the process output

getOutputStream

public abstract OutputStream getOutputStream()
Obtain the output stream that sends data to the subprocess. This is the STDIN of the subprocess. When implementing, you should probably use a buffered stream.

Returns: the output stream that pipes to the process input

waitFor

public abstract int waitFor()
The thread calling waitFor will block until the subprocess has terminated. If the process has already terminated then the method immediately returns with the exit value of the subprocess.

Returns: the subprocess exit value; 0 conventionally denotes success

Throws: InterruptedException if another thread interrupts the blocked one