ritopt API Documentation
by Damian Eads

gnu.dtools.ritopt
Class SimpleProcess

java.lang.Object
  |
  +--java.lang.Process
        |
        +--gnu.dtools.ritopt.SimpleProcess

public class SimpleProcess
extends java.lang.Process

A SimpleProcess is used to execute a shell process, and redirect an input stream to the processes' standard input, as well as redirect the processes' standard output/error to an output stream. The processes is multithreaded to prevent deadlock.

The example below demonstrates the use of this class.

  class ExecuteProcess {
       public static void main( String args[] ) {
           if ( args.length > 0 ) {
               String processName = args[ 0 ];
               try {
                   SimpleProcess process
                      = new SimpleProcess( Runtime.getRuntime.exec(
                                                            processName ) );
                                          );
                   int exitStatus = process.waitFor();
                   System.out.println( "The process ran successfully" 
                                       + " with an exit status of "
                                       + exitStatus + "." );
               }
               catch ( Exception e ) {
                   System.out.println( "The process was not successful. "
                                       + " Reason: " + e.getMessage() );
               }
           }
           else {
               System.err.println( "Please specify a command" );
           }
       }
  }
 

 Copyright (C) Damian Ryan Eads, 2001. All Rights Reserved.

 ritopt is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.

 ritopt is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with ritopt; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 

Author:
Damian Eads

Constructor Summary
SimpleProcess(java.lang.Process process)
          Constructs a SimpleProcess, redirecting System.in to the its standard input, System.out to its standard output, and System.err to its standard error.
SimpleProcess(java.lang.Process process, java.io.InputStream processInput, java.io.PrintStream yourOutput, java.io.PrintStream yourError)
          Constructs a SimpleProcess, initializing it with the streams passed.
 
Method Summary
 void destroy()
          Destroys the target process.
 int exitValue()
          Returns the target processes' exit value.
 java.io.InputStream getErrorStream()
          Returns the standard error of this process.
 java.io.InputStream getInputStream()
          Returns the standard output of this process.
 java.io.OutputStream getOutputStream()
          Returns the standard input of this process.
 int waitFor()
          Begin redirecting the streams passed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleProcess

public SimpleProcess(java.lang.Process process)
              throws java.io.IOException
Constructs a SimpleProcess, redirecting System.in to the its standard input, System.out to its standard output, and System.err to its standard error.

SimpleProcess

public SimpleProcess(java.lang.Process process,
                     java.io.InputStream processInput,
                     java.io.PrintStream yourOutput,
                     java.io.PrintStream yourError)
              throws java.io.IOException
Constructs a SimpleProcess, initializing it with the streams passed.
Parameters:
process - The target process.
processInput - The stream that is redirected to the processes' standard input.
processOutput - The stream to redirect the processes's standard output.
processError - The stream to redirect the processes's standard input.
Method Detail

getOutputStream

public java.io.OutputStream getOutputStream()
Returns the standard input of this process.
Overrides:
getOutputStream in class java.lang.Process
Returns:
The standard input of this process.

getInputStream

public java.io.InputStream getInputStream()
Returns the standard output of this process.
Overrides:
getInputStream in class java.lang.Process
Returns:
The standard output of this process.

getErrorStream

public java.io.InputStream getErrorStream()
Returns the standard error of this process.
Overrides:
getErrorStream in class java.lang.Process
Returns:
The standard error of this process.

waitFor

public int waitFor()
            throws java.lang.InterruptedException
Begin redirecting the streams passed. This method should be invoked immediately after execution of a simple process to prevent thread deadlock.
Overrides:
waitFor in class java.lang.Process
Returns:
The exit status of the target process.

exitValue

public int exitValue()
Returns the target processes' exit value.
Overrides:
exitValue in class java.lang.Process
Returns:
This processes' exit value.

destroy

public void destroy()
             throws java.lang.IllegalThreadStateException
Destroys the target process.
Overrides:
destroy in class java.lang.Process

Copyright (C) Damian Ryan Eads, 2001. All Rights Reserved.
SourceForge Logo