Class Java

All Implemented Interfaces:
Cloneable

public class Java extends Task
Launcher for Java applications. Allows use of the same JVM for the called application thus resulting in much faster operation.
Since:
Ant 1.1
  • Field Details

  • Constructor Details

    • Java

      public Java()
      Normal constructor
    • Java

      public Java(Task owner)
      create a bound task
      Parameters:
      owner - owner
  • Method Details

    • execute

      public void execute() throws BuildException
      Do the execution.
      Overrides:
      execute in class Task
      Throws:
      BuildException - if failOnError is set to true and the application returns a nonzero result code.
    • executeJava

      public int executeJava() throws BuildException
      Do the execution and return a return code.
      Returns:
      the return code from the execute java class if it was executed in a separate VM (fork = "yes") or a security manager was installed that prohibits ExitVM (default).
      Throws:
      BuildException - if required parameters are missing.
    • checkConfiguration

      protected void checkConfiguration() throws BuildException
      Check configuration.
      Throws:
      BuildException - if required parameters are missing.
    • executeJava

      protected int executeJava(CommandlineJava commandLine)
      Execute the specified CommandlineJava.
      Parameters:
      commandLine - CommandLineJava instance.
      Returns:
      the exit value of the process if forked, 0 otherwise.
    • setSpawn

      public void setSpawn(boolean spawn)
      Set whether or not you want the process to be spawned; default is not spawned.
      Parameters:
      spawn - if true you do not want Ant to wait for the end of the process.
      Since:
      Ant 1.6
    • setClasspath

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

      public Path createClasspath()
      Add a path to the classpath.
      Returns:
      created classpath.
    • createBootclasspath

      public Path createBootclasspath()
      Add a path to the bootclasspath.
      Returns:
      created bootclasspath.
      Since:
      Ant 1.6
    • setModulepath

      public void setModulepath(Path mp)
      Set the modulepath to be used when running the Java class.
      Parameters:
      mp - an Ant Path object containing the modulepath.
      Since:
      1.9.7
    • createModulepath

      public Path createModulepath()
      Add a path to the modulepath.
      Returns:
      created modulepath.
      Since:
      1.9.7
    • setModulepathRef

      public void setModulepathRef(Reference r)
      Set the modulepath to use by reference.
      Parameters:
      r - a reference to an existing modulepath.
      Since:
      1.9.7
    • createUpgrademodulepath

      public Path createUpgrademodulepath()
      Add a path to the upgrademodulepath.
      Returns:
      created upgrademodulepath.
      Since:
      1.9.7
    • createPermissions

      public Permissions createPermissions()
      Set the permissions for the application run inside the same JVM.
      Returns:
      Permissions.
      Since:
      Ant 1.6
    • setClasspathRef

      public void setClasspathRef(Reference r)
      Set the classpath to use by reference.
      Parameters:
      r - a reference to an existing classpath.
    • setJar

      public void setJar(File jarfile) throws BuildException
      Set the location of the JAR file to execute.
      Parameters:
      jarfile - the jarfile to execute.
      Throws:
      BuildException - if there is also a classname, module or sourcefile attribute specified
    • setClassname

      public void setClassname(String s) throws BuildException
      Set the Java class to execute.
      Parameters:
      s - the name of the main class.
      Throws:
      BuildException - if there is also a jar or sourcefile attribute specified
    • setModule

      public void setModule(String module) throws BuildException
      Set the Java module to execute.
      Parameters:
      module - the name of the module.
      Throws:
      BuildException - if there is also a jar or sourcefile attribute specified
      Since:
      1.9.7
    • setSourceFile

      public void setSourceFile(String sourceFile) throws BuildException
      Set the Java source-file to execute. Support for single file source program execution, in Java, is only available since Java 11.
      Parameters:
      sourceFile - The path to the source file
      Throws:
      BuildException - if there is also a jar, classname or module attribute specified
      Since:
      Ant 1.10.5
    • setArgs

      public void setArgs(String s)
      Deprecated: use nested arg instead. Set the command line arguments for the class.
      Parameters:
      s - arguments.
    • setCloneVm

      public void setCloneVm(boolean cloneVm)
      If set, system properties will be copied to the cloned VM--as well as the bootclasspath unless you have explicitly specified a bootclasspath.

      Doesn't have any effect unless fork is true.

      Parameters:
      cloneVm - if true copy system properties.
      Since:
      Ant 1.7
    • createArg

      public Commandline.Argument createArg()
      Add a command-line argument.
      Returns:
      created argument.
    • setResultProperty

      public void setResultProperty(String resultProperty)
      Set the name of the property in which the return code of the command should be stored. Only of interest if failonerror=false.
      Parameters:
      resultProperty - name of property.
      Since:
      Ant 1.6
    • maybeSetResultPropertyValue

      protected void maybeSetResultPropertyValue(int result)
      Helper method to set result property to the passed in value if appropriate.
      Parameters:
      result - the exit code
    • setFork

      public void setFork(boolean s)
      If true, execute in a new VM.
      Parameters:
      s - do you want to run Java in a new VM.
    • setJvmargs

      public void setJvmargs(String s)
      Set the command line arguments for the JVM.
      Parameters:
      s - jvmargs.
    • createJvmarg

      public Commandline.Argument createJvmarg()
      Adds a JVM argument.
      Returns:
      JVM argument created.
    • setJvm

      public void setJvm(String s)
      Set the command used to start the VM (only if forking).
      Parameters:
      s - command to start the VM.
    • addSysproperty

      public void addSysproperty(Environment.Variable sysp)
      Add a system property.
      Parameters:
      sysp - system property.
    • addSyspropertyset

      public void addSyspropertyset(PropertySet sysp)
      Add a set of properties as system properties.
      Parameters:
      sysp - set of properties to add.
      Since:
      Ant 1.6
    • setFailonerror

      public void setFailonerror(boolean fail)
      If true, then fail if the command exits with a returncode other than zero.
      Parameters:
      fail - if true fail the build when the command exits with a nonzero returncode.
    • setDir

      public void setDir(File d)
      Set the working directory of the process.
      Parameters:
      d - working directory.
    • setOutput

      public void setOutput(File out)
      Set the File to which the output of the process is redirected.
      Parameters:
      out - the output File.
    • setInput

      public void setInput(File input)
      Set the input to use for the task.
      Parameters:
      input - name of the input file.
    • setInputString

      public void setInputString(String inputString)
      Set the string to use as input.
      Parameters:
      inputString - the string which is used as the input source.
    • setLogError

      public void setLogError(boolean logError)
      Set whether error output of exec is logged. This is only useful when output is being redirected and error output is desired in the Ant log.
      Parameters:
      logError - get in the ant log the messages coming from stderr in the case that fork = true.
    • setError

      public void setError(File error)
      Set the File to which the error stream of the process is redirected.
      Parameters:
      error - file getting the error stream.
      Since:
      Ant 1.6
    • setOutputproperty

      public void setOutputproperty(String outputProp)
      Set the property name whose value should be set to the output of the process.
      Parameters:
      outputProp - property name.
    • setErrorProperty

      public void setErrorProperty(String errorProperty)
      Set the property name whose value should be set to the error of the process.
      Parameters:
      errorProperty - property name.
      Since:
      Ant 1.6
    • setMaxmemory

      public void setMaxmemory(String max)
      Corresponds to -mx or -Xmx depending on VM version.
      Parameters:
      max - max memory parameter.
    • setJVMVersion

      public void setJVMVersion(String value)
      Set the JVM version.
      Parameters:
      value - JVM version.
    • addEnv

      public void addEnv(Environment.Variable var)
      Add an environment variable.

      Will be ignored if we are not forking a new VM.

      Parameters:
      var - new environment variable.
      Since:
      Ant 1.5
    • setNewenvironment

      public void setNewenvironment(boolean newenv)
      If true, use a completely new environment.

      Will be ignored if we are not forking a new VM.

      Parameters:
      newenv - if true, use a completely new environment.
      Since:
      Ant 1.5
    • setAppend

      public void setAppend(boolean append)
      If true, append output to existing file.
      Parameters:
      append - if true, append output to existing file.
      Since:
      Ant 1.5
    • setDiscardOutput

      public void setDiscardOutput(boolean discard)
      Whether output should be discarded.

      Defaults to false.

      Parameters:
      discard - if true output streams are discarded.
      Since:
      Ant 1.10.10
      See Also:
    • setDiscardError

      public void setDiscardError(boolean discard)
      Whether error output should be discarded.

      Defaults to false.

      Parameters:
      discard - if true error streams are discarded.
      Since:
      Ant 1.10.10
      See Also:
    • setTimeout

      public void setTimeout(Long value)
      Set the timeout in milliseconds after which the process will be killed.
      Parameters:
      value - timeout in milliseconds.
      Since:
      Ant 1.5
    • addAssertions

      public void addAssertions(Assertions asserts)
      Add assertions to enable in this program (if fork=true).
      Parameters:
      asserts - assertion set.
      Since:
      Ant 1.6
    • addConfiguredRedirector

      public void addConfiguredRedirector(RedirectorElement redirectorElement)
      Add a RedirectorElement to this task.
      Parameters:
      redirectorElement - RedirectorElement.
    • handleOutput

      protected void handleOutput(String output)
      Pass output sent to System.out to specified output file.
      Overrides:
      handleOutput in class Task
      Parameters:
      output - a string of output on its way to the handlers.
      Since:
      Ant 1.5
    • handleInput

      public int handleInput(byte[] buffer, int offset, int length) throws IOException
      Handle an input request by this task.
      Overrides:
      handleInput in class Task
      Parameters:
      buffer - the buffer into which data is to be read.
      offset - the offset into the buffer at which data is stored.
      length - the amount of data to read.
      Returns:
      the number of bytes read.
      Throws:
      IOException - if the data cannot be read.
      Since:
      Ant 1.6
    • handleFlush

      protected void handleFlush(String output)
      Pass output sent to System.out to specified output file.
      Overrides:
      handleFlush in class Task
      Parameters:
      output - string of output on its way to its handlers.
      Since:
      Ant 1.5.2
    • handleErrorOutput

      protected void handleErrorOutput(String output)
      Handle output sent to System.err.
      Overrides:
      handleErrorOutput in class Task
      Parameters:
      output - string of stderr.
      Since:
      Ant 1.5
    • handleErrorFlush

      protected void handleErrorFlush(String output)
      Handle output sent to System.err and flush the stream.
      Overrides:
      handleErrorFlush in class Task
      Parameters:
      output - string of stderr.
      Since:
      Ant 1.5.2
    • setupRedirector

      protected void setupRedirector()
      Set up properties on the redirector that we needed to store locally.
    • run

      protected void run(String classname, Vector<String> args) throws BuildException
      Executes the given classname with the given arguments as if it were a command line application.
      Parameters:
      classname - the name of the class to run.
      args - arguments for the class.
      Throws:
      BuildException - in case of IOException in the execution.
    • clearArgs

      public void clearArgs()
      Clear out the arguments to this java task.
    • createWatchdog

      protected ExecuteWatchdog createWatchdog() throws BuildException
      Create the Watchdog to kill a runaway process.
      Returns:
      new watchdog.
      Throws:
      BuildException - under unknown circumstances.
      Since:
      Ant 1.5
    • getCommandLine

      public CommandlineJava getCommandLine()
      Accessor to the command line.
      Returns:
      the current command line.
      Since:
      1.6.3
    • getSysProperties

      public CommandlineJava.SysProperties getSysProperties()
      Get the system properties of the command line.
      Returns:
      the current properties of this java invocation.
      Since:
      1.6.3