java.lang
Class Process

java.lang.Object
  extended by java.lang.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:
Runtime.exec(String[], String[], File)

Constructor Summary
Process()
          Empty constructor does nothing.
 
Method Summary
abstract  void destroy()
          Kills the subprocess and all of its children forcibly.
abstract  int exitValue()
          When a process terminates there is associated with that termination an exit value for the process to indicate why it terminated.
abstract  InputStream getErrorStream()
          Obtain the input stream that receives data from the subprocess.
abstract  InputStream getInputStream()
          Obtain the input stream that receives data from the subprocess.
abstract  OutputStream getOutputStream()
          Obtain the output stream that sends data to the subprocess.
abstract  int waitFor()
          The thread calling waitFor will block until the subprocess has terminated.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Process

public Process()
Empty constructor does nothing.

Method Detail

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

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

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

waitFor

public abstract int waitFor()
                     throws InterruptedException
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

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

destroy

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