Class Java

  • 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
    • Constructor Detail

      • Java

        public Java()
        Normal constructor
      • Java

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

      • 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