com.Ostermiller.util
Class ExecHelper

java.lang.Object
  extended by com.Ostermiller.util.ExecHelper

public final class ExecHelper
extends java.lang.Object

Convenience methods for executing non-Java processes. More information about this class is available from ostermiller.org.

Since:
ostermillerutils 1.06.00

Method Summary
static ExecHelper exec(java.lang.String[] cmdarray)
          Executes the specified command and arguments in a separate process, and waits for the process to finish.
static ExecHelper exec(java.lang.String[] cmdarray, java.lang.String charset)
          Executes the specified command and arguments in a separate process, and waits for the process to finish.
static ExecHelper exec(java.lang.String[] cmdarray, java.lang.String[] envp)
          Executes the specified command and arguments in a separate process, and waits for the process to finish.
static ExecHelper exec(java.lang.String[] cmdarray, java.lang.String[] envp, java.io.File dir)
          Executes the specified command and arguments in a separate process, and waits for the process to finish.
static ExecHelper exec(java.lang.String[] cmdarray, java.lang.String[] envp, java.io.File dir, java.lang.String charset)
          Executes the specified command and arguments in a separate process, and waits for the process to finish.
static ExecHelper exec(java.lang.String[] cmdarray, java.lang.String[] envp, java.lang.String charset)
          Executes the specified command and arguments in a separate process, and waits for the process to finish.
static ExecHelper execUsingShell(java.lang.String command)
          Executes the specified command using a shell.
static ExecHelper execUsingShell(java.lang.String command, java.lang.String charset)
          Executes the specified command using a shell.
 java.lang.String getError()
          Get the error output of the job that ran.
 java.lang.String getOutput()
          Get the output of the job that ran.
 int getStatus()
          Get the status of the job that ran.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

exec

public static ExecHelper exec(java.lang.String[] cmdarray)
                       throws java.io.IOException
Executes the specified command and arguments in a separate process, and waits for the process to finish.

Output from the process is expected to be text in the system's default character set.

No input is passed to the process on STDIN.

Parameters:
cmdarray - array containing the command to call and its arguments.
Returns:
The results of the execution in an ExecHelper object.
Throws:
java.lang.SecurityException - if a security manager exists and its checkExec method doesn't allow creation of a subprocess.
java.io.IOException - - if an I/O error occurs
java.lang.NullPointerException - - if cmdarray is null
java.lang.IndexOutOfBoundsException - - if cmdarray is an empty array (has length 0).
Since:
ostermillerutils 1.06.00

exec

public static ExecHelper exec(java.lang.String[] cmdarray,
                              java.lang.String[] envp)
                       throws java.io.IOException
Executes the specified command and arguments in a separate process, and waits for the process to finish.

Output from the process is expected to be text in the system's default character set.

No input is passed to the process on STDIN.

Parameters:
cmdarray - array containing the command to call and its arguments.
envp - array of strings, each element of which has environment variable settings in format name=value.
Returns:
The results of the execution in an ExecHelper object.
Throws:
java.lang.SecurityException - if a security manager exists and its checkExec method doesn't allow creation of a subprocess.
java.io.IOException - - if an I/O error occurs
java.lang.NullPointerException - - if cmdarray is null
java.lang.IndexOutOfBoundsException - - if cmdarray is an empty array (has length 0).
Since:
ostermillerutils 1.06.00

exec

public static ExecHelper exec(java.lang.String[] cmdarray,
                              java.lang.String[] envp,
                              java.io.File dir)
                       throws java.io.IOException
Executes the specified command and arguments in a separate process, and waits for the process to finish.

Output from the process is expected to be text in the system's default character set.

No input is passed to the process on STDIN.

Parameters:
cmdarray - array containing the command to call and its arguments.
envp - array of strings, each element of which has environment variable settings in format name=value.
dir - the working directory of the subprocess, or null if the subprocess should inherit the working directory of the current process.
Returns:
The results of the execution in an ExecHelper object.
Throws:
java.lang.SecurityException - if a security manager exists and its checkExec method doesn't allow creation of a subprocess.
java.io.IOException - - if an I/O error occurs
java.lang.NullPointerException - - if cmdarray is null
java.lang.IndexOutOfBoundsException - - if cmdarray is an empty array (has length 0).
Since:
ostermillerutils 1.06.00

exec

public static ExecHelper exec(java.lang.String[] cmdarray,
                              java.lang.String charset)
                       throws java.io.IOException
Executes the specified command and arguments in a separate process, and waits for the process to finish.

No input is passed to the process on STDIN.

Parameters:
cmdarray - array containing the command to call and its arguments.
charset - Output from the executed command is expected to be in this character set.
Returns:
The results of the execution in an ExecHelper object.
Throws:
java.lang.SecurityException - if a security manager exists and its checkExec method doesn't allow creation of a subprocess.
java.io.IOException - - if an I/O error occurs
java.lang.NullPointerException - - if cmdarray is null
java.lang.IndexOutOfBoundsException - - if cmdarray is an empty array (has length 0).
Since:
ostermillerutils 1.06.00

exec

public static ExecHelper exec(java.lang.String[] cmdarray,
                              java.lang.String[] envp,
                              java.lang.String charset)
                       throws java.io.IOException
Executes the specified command and arguments in a separate process, and waits for the process to finish.

No input is passed to the process on STDIN.

Parameters:
cmdarray - array containing the command to call and its arguments.
envp - array of strings, each element of which has environment variable settings in format name=value.
charset - Output from the executed command is expected to be in this character set.
Returns:
The results of the execution in an ExecHelper object.
Throws:
java.lang.SecurityException - if a security manager exists and its checkExec method doesn't allow creation of a subprocess.
java.io.IOException - - if an I/O error occurs
java.lang.NullPointerException - - if cmdarray is null
java.lang.IndexOutOfBoundsException - - if cmdarray is an empty array (has length 0).
Since:
ostermillerutils 1.06.00

exec

public static ExecHelper exec(java.lang.String[] cmdarray,
                              java.lang.String[] envp,
                              java.io.File dir,
                              java.lang.String charset)
                       throws java.io.IOException
Executes the specified command and arguments in a separate process, and waits for the process to finish.

No input is passed to the process on STDIN.

Parameters:
cmdarray - array containing the command to call and its arguments.
envp - array of strings, each element of which has environment variable settings in format name=value.
dir - the working directory of the subprocess, or null if the subprocess should inherit the working directory of the current process.
charset - Output from the executed command is expected to be in this character set.
Returns:
The results of the execution in an ExecHelper object.
Throws:
java.lang.SecurityException - if a security manager exists and its checkExec method doesn't allow creation of a subprocess.
java.io.IOException - - if an I/O error occurs
java.lang.NullPointerException - - if cmdarray is null
java.lang.IndexOutOfBoundsException - - if cmdarray is an empty array (has length 0).
Since:
ostermillerutils 1.06.00

execUsingShell

public static ExecHelper execUsingShell(java.lang.String command)
                                 throws java.io.IOException
Executes the specified command using a shell. On windows uses cmd.exe or command.exe. On other platforms it uses /bin/sh.

A shell should be used to execute commands when features such as file redirection, pipes, argument parsing are desired.

Output from the process is expected to be text in the system's default character set.

No input is passed to the process on STDIN.

Parameters:
command - String containing a command to be parsed by the shell and executed.
Returns:
The results of the execution in an ExecHelper object.
Throws:
java.lang.SecurityException - if a security manager exists and its checkExec method doesn't allow creation of a subprocess.
java.io.IOException - - if an I/O error occurs
java.lang.NullPointerException - - if command is null
Since:
ostermillerutils 1.06.00

execUsingShell

public static ExecHelper execUsingShell(java.lang.String command,
                                        java.lang.String charset)
                                 throws java.io.IOException
Executes the specified command using a shell. On windows uses cmd.exe or command.exe. On other platforms it uses /bin/sh.

A shell should be used to execute commands when features such as file redirection, pipes, argument parsing are desired.

No input is passed to the process on STDIN.

Parameters:
command - String containing a command to be parsed by the shell and executed.
charset - Output from the executed command is expected to be in this character set.
Returns:
The results of the execution in an ExecHelper object.
Throws:
java.lang.SecurityException - if a security manager exists and its checkExec method doesn't allow creation of a subprocess.
java.io.IOException - - if an I/O error occurs
java.lang.NullPointerException - - if command is null
Since:
ostermillerutils 1.06.00

getOutput

public java.lang.String getOutput()
Get the output of the job that ran.

Returns:
Everything the executed process wrote to its standard output as a String.
Since:
ostermillerutils 1.06.00

getError

public java.lang.String getError()
Get the error output of the job that ran.

Returns:
Everything the executed process wrote to its standard error as a String.
Since:
ostermillerutils 1.06.00

getStatus

public int getStatus()
Get the status of the job that ran.

Returns:
exit status of the executed process, by convention, the value 0 indicates normal termination.
Since:
ostermillerutils 1.06.00