Package org.apache.tools.ant.taskdefs.optional.jlink

## Class JlinkTask

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.MatchingTask
      - - org.apache.tools.ant.taskdefs.optional.jlink.JlinkTask

- All Implemented Interfaces:
    `java.lang.Cloneable`, `SelectorContainer`

      public class JlinkTask
      extends MatchingTask

  This task defines objects that can link together various jar and zip files. It is not related to the `jlink` tool present in Java 9 and later; for that, see `Link`.

  It is basically a wrapper for the jlink code written originally by Patrick Beard. The classes org.apache.tools.ant.taskdefs.optional.jlink.Jlink and org.apache.tools.ant.taskdefs.optional.jlink.ClassNameReader support this class.

  For example:

       <jlink compress="false" outfile="out.jar"/>
         <mergefiles>
           <pathelement path="${build.dir}/mergefoo.jar"/>
           <pathelement path="${build.dir}/mergebar.jar"/>
         </mergefiles>
         <addfiles>
           <pathelement path="${build.dir}/mac.jar"/>
           <pathelement path="${build.dir}/pc.zip"/>
         </addfiles>
       </jlink>

- - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.taskdefs.MatchingTask

      `fileset`

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JlinkTask()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Path` | `createAddfiles()` | Establishes the object that contains the files to be added to the output.
    `Path` | `createMergefiles()` | Establishes the object that contains the files to be merged into the output.
    `void` | `execute()` | Does the adding and merging.
    `void` | `setAddfiles​(Path addfiles)` | Sets the files to be added into the output.
    `void` | `setCompress​(boolean compress)` | Defines whether or not the output should be compacted.
    `void` | `setMergefiles​(Path mergefiles)` | Sets the files to be merged into the output.
    `void` | `setOutfile​(java.io.File outfile)` | The output file for this run of jlink.

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTask

      `add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems`

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation`

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

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

- - ### Constructor Detail

    - #### JlinkTask

          public JlinkTask()

  - ### Method Detail

    - #### setOutfile

          public void setOutfile​(java.io.File outfile)

      The output file for this run of jlink. Usually a jar or zip file.
      Parameters:
        `outfile` - the output file

    - #### createMergefiles

          public Path createMergefiles()

      Establishes the object that contains the files to be merged into the output.
      Returns:
        a path to be configured

    - #### setMergefiles

          public void setMergefiles​(Path mergefiles)

      Sets the files to be merged into the output.
      Parameters:
        `mergefiles` - a path

    - #### createAddfiles

          public Path createAddfiles()

      Establishes the object that contains the files to be added to the output.
      Returns:
        a path to be configured

    - #### setAddfiles

          public void setAddfiles​(Path addfiles)

      Sets the files to be added into the output.
      Parameters:
        `addfiles` - a path

    - #### setCompress

          public void setCompress​(boolean compress)

      Defines whether or not the output should be compacted.
      Parameters:
        `compress` - a `boolean` value

    - #### execute

          public void execute()
                       throws BuildException

      Does the adding and merging.
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - on error