|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.tools.ant.taskdefs.Execute
Runs an external program.
Field Summary | |
static int |
INVALID
Invalid exit code. |
Constructor Summary | |
Execute()
Creates a new execute object using PumpStreamHandler for
stream handling. |
|
Execute(ExecuteStreamHandler streamHandler)
Creates a new execute object. |
|
Execute(ExecuteStreamHandler streamHandler,
ExecuteWatchdog watchdog)
Creates a new execute object. |
Method Summary | |
int |
execute()
Runs a process defined by the command line and returns its exit status. |
java.lang.String[] |
getCommandline()
Returns the commandline used to create a subprocess. |
java.lang.String[] |
getEnvironment()
Returns the environment used to create a subprocess. |
int |
getExitValue()
query the exit value of the process. |
static java.util.Vector |
getProcEnvironment()
Find the list of environment variables for this process. |
boolean |
killedProcess()
test for an untimely death of the process |
static java.lang.Process |
launch(Project project,
java.lang.String[] command,
java.lang.String[] env,
java.io.File dir,
boolean useVM)
Creates a process that runs a command. |
static void |
runCommand(Task task,
java.lang.String[] cmdline)
A utility method that runs an external command. |
void |
setAntRun(Project project)
Set the name of the antRun script using the project's value. |
void |
setCommandline(java.lang.String[] commandline)
Sets the commandline of the subprocess to launch. |
void |
setEnvironment(java.lang.String[] env)
Sets the environment variables for the subprocess to launch. |
protected void |
setExitValue(int value)
|
void |
setNewenvironment(boolean newenv)
Set whether to propagate the default environment or not. |
void |
setVMLauncher(boolean useVMLauncher)
Launch this execution through the VM, where possible, rather than through the OS's shell. |
void |
setWorkingDirectory(java.io.File wd)
Sets the working directory of the process to execute. |
static java.lang.String |
toString(java.io.ByteArrayOutputStream bos)
ByteArrayOutputStream#toString doesn't seem to work reliably on OS/390, at least not the way we use it in the execution context. |
protected void |
waitFor(java.lang.Process process)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int INVALID
Constructor Detail |
public Execute()
PumpStreamHandler
for
stream handling.
public Execute(ExecuteStreamHandler streamHandler)
streamHandler
- the stream handler used to handle the input and
output streams of the subprocess.public Execute(ExecuteStreamHandler streamHandler, ExecuteWatchdog watchdog)
streamHandler
- the stream handler used to handle the input and
output streams of the subprocess.watchdog
- a watchdog for the subprocess or null
to
to disable a timeout for the subprocess.Method Detail |
public static java.util.Vector getProcEnvironment()
public static java.lang.String toString(java.io.ByteArrayOutputStream bos)
public java.lang.String[] getCommandline()
public void setCommandline(java.lang.String[] commandline)
commandline
- the commandline of the subprocess to launchpublic void setNewenvironment(boolean newenv)
newenv
- whether to propagate the process environment.public java.lang.String[] getEnvironment()
public void setEnvironment(java.lang.String[] env)
env
- array of Strings, each element of which has
an environment variable settings in format key=valuepublic void setWorkingDirectory(java.io.File wd)
This is emulated using the antRun scripts unless the OS is Windows NT in which case a cmd.exe is spawned, or MRJ and setting user.dir works, or JDK 1.3 and there is official support in java.lang.Runtime.
wd
- the working directory of the process.public void setAntRun(Project project) throws BuildException
project
- the current project.
BuildException
public void setVMLauncher(boolean useVMLauncher)
useVMLauncher
- true if exec should launch through thge VM,
false if the shell should be used to launch the
command.public static java.lang.Process launch(Project project, java.lang.String[] command, java.lang.String[] env, java.io.File dir, boolean useVM) throws java.io.IOException
project
- the Project, only used for logging purposes, may be null.command
- the command to runenv
- the environment for the commanddir
- the working directory for the commanduseVM
- use the built-in exec command for JDK 1.3 if available.
java.io.IOException
public int execute() throws java.io.IOException
INVALID
java.io.IOException
- The exception is thrown, if launching
of the subprocess failedprotected void waitFor(java.lang.Process process)
protected void setExitValue(int value)
public int getExitValue()
public boolean killedProcess()
public static void runCommand(Task task, java.lang.String[] cmdline) throws BuildException
task
- The task that the command is part of. Used for loggingcmdline
- The command to execute.
BuildException
- if the command does not return 0.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |