Package org.apache.tools.ant.taskdefs

# Class ExecuteJava

java.lang.Object
org.apache.tools.ant.taskdefs.ExecuteJava

All Implemented Interfaces:
  `Runnable`, `TimeoutObserver`

public class ExecuteJava extends Object implements Runnable, TimeoutObserver
Execute a Java class.

Since:
  Ant 1.2

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ExecuteJava()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `execute(Project project)`
  Execute the Java class against the specified Ant Project.
  `int`
  `fork(ProjectComponent pc)`
  Run the Java command in a separate VM, this does not give you the full flexibility of the Java task, but may be enough for simple needs.
  `boolean`
  `killedProcess()`
  Get whether the process was killed.
  `void`
  `run()`
  Run this ExecuteJava in a Thread.
  `void`
  `setClasspath(Path p)`
  Set the classpath to be used when running the Java class.
  `void`
  `setJavaCommand(Commandline javaCommand)`
  Set the Java "command" for this ExecuteJava.
  `void`
  `setOutput(PrintStream out)`
  Deprecated.
  since 1.4.x.
  `void`
  `setPermissions(Permissions permissions)`
  Set the permissions for the application run.
  `void`
  `setSystemProperties(CommandlineJava.SysProperties s)`
  Set the system properties to use when running the Java class.
  `void`
  `setTimeout(Long timeout)`
  Set the timeout for this ExecuteJava.
  `static void`
  `setupCommandLineForVMS(Execute exe, String[] command)`
  On VMS platform, we need to create a special java options file containing the arguments and classpath for the java command.
  `void`
  `timeoutOccured(Watchdog w)`
  Mark timeout as having occurred.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ExecuteJava

    public ExecuteJava()

- ## Method Details

  - ### setJavaCommand

    public void setJavaCommand(Commandline javaCommand)
    Set the Java "command" for this ExecuteJava.
    Parameters:
      `javaCommand` - the classname and arguments in a Commandline.

  - ### setClasspath

    public void setClasspath(Path p)
    Set the classpath to be used when running the Java class.
    Parameters:
      `p` - an Ant Path object containing the classpath.

  - ### setSystemProperties

    public void setSystemProperties(CommandlineJava.SysProperties s)
    Set the system properties to use when running the Java class.
    Parameters:
      `s` - CommandlineJava system properties.

  - ### setPermissions

    public void setPermissions(Permissions permissions)
    Set the permissions for the application run.
    Parameters:
      `permissions` - the Permissions to use.
    Since:
      Ant 1.6

  - ### setOutput

    @Deprecated public void setOutput(PrintStream out)
    Deprecated.
    since 1.4.x. manage output at the task level.
    Set the stream to which all output (System.out as well as System.err) will be written.
    Parameters:
      `out` - the PrintStream where output should be sent.

  - ### setTimeout

    public void setTimeout(Long timeout)
    Set the timeout for this ExecuteJava.
    Parameters:
      `timeout` - timeout as Long.
    Since:
      Ant 1.5

  - ### execute

    public void execute(Project project) throws BuildException
    Execute the Java class against the specified Ant Project.
    Parameters:
      `project` - the Project to use.
    Throws:
      `BuildException` - on error.

  - ### run

    public void run()
    Run this ExecuteJava in a Thread.
    Specified by:
      `run` in interface `Runnable`
    Since:
      Ant 1.5

  - ### timeoutOccured

    public void timeoutOccured(Watchdog w)
    Mark timeout as having occurred.
    Specified by:
      `timeoutOccured` in interface `TimeoutObserver`
    Parameters:
      `w` - the responsible Watchdog.
    Since:
      Ant 1.5

  - ### killedProcess

    public boolean killedProcess()
    Get whether the process was killed.
    Returns:
      `true` if the process was killed, false otherwise.
    Since:
      1.19, Ant 1.5

  - ### fork

    public int fork(ProjectComponent pc) throws BuildException
    Run the Java command in a separate VM, this does not give you the full flexibility of the Java task, but may be enough for simple needs.
    Parameters:
      `pc` - the ProjectComponent to use for logging, etc.
    Returns:
      the exit status of the subprocess.
    Throws:
      `BuildException` - on error.
    Since:
      Ant 1.6.3

  - ### setupCommandLineForVMS

    public static void setupCommandLineForVMS(Execute exe, String[] command)
    On VMS platform, we need to create a special java options file containing the arguments and classpath for the java command. The special file is supported by the "-V" switch on the VMS JVM.
    Parameters:
      `exe` - the Execute instance to alter.
      `command` - the command-line.