Class Java

java.lang.Object
All Implemented Interfaces:
java.lang.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​(java.io.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​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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​(java.io.File d)
      Set the working directory of the process.
      Parameters:
      d - working directory.
    • setOutput

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

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

      public void setInputString​(java.lang.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​(java.io.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​(java.lang.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​(java.lang.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​(java.lang.String max)
      Corresponds to -mx or -Xmx depending on VM version.
      Parameters:
      max - max memory parameter.
    • setJVMVersion

      public void setJVMVersion​(java.lang.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(boolean)
    • 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:
      setDiscardOutput(boolean)
    • setTimeout

      public void setTimeout​(java.lang.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​(java.lang.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 java.io.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:
      java.io.IOException - if the data cannot be read.
      Since:
      Ant 1.6
    • handleFlush

      protected void handleFlush​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.String classname, java.util.Vector<java.lang.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