## Using exe4j with ant |

| Integrating exe4j with your ant script (read about ant at http://ant.apache.org) is easy. Just use the `exe4j` task that is provided in `{exe4j installation directory}/bin/ant.jar` and set the `projectfile` parameter to the exe4j config file that you want to build. To make the `exe4j` task available to ant, you must first insert a `taskdef` element that tells ant where to find the task definition. Here is an example of using the task in an ant build file:
          <taskdef name="exe4j"
                   classname="com.exe4j.Exe4JTask"
                   classpath="C:\Program Files\exe4j\bin\ant.jar"/>

          <target name="launcher">
            <exe4j projectfile="myapp.exe4j"/>
          </target>
The `taskdef` definition must occur only once per ant-build file and can appear anywhere on the top level below the `project` element. Note: it is not possible to copy the `ant.jar` archive to the `lib` folder of your ant distribution. You have to reference a full installation of exe4j in the task definition.

| The exe4j task supports the following parameters:
Attribute | Description | Required
--- | --- | ---
projectfile | The exe4j config file for the launcher that should be generated. | Yes
verbose | Corresponds to the `--verbose` command line option. Either `true` or `false`. | No, verbose and quiet cannot both be `true`
quiet | Corresponds to the `--quiet` command line option. Either `true` or `false`.
test | Corresponds to the `--test` command line option. Either `true` or `false`. | No
release | Corresponds to the `--release` command line option. Enter a version number like "`3.1.2`". The version number may only contain numbers and dots. | No
requirelicense | Corresponds to the `--require-license` command line option. | No
destination | Corresponds to the `--destination` command line option. Enter a directory where the generated launcher should be placed. | No

| To customize aspects of the exe4j build that cannot be overridden with he above parameters, you can add appropriate tokens in the config file and use the `copy` task with a nested `filterset` element. For example, if the main class in
        <java mainClass="com.mycorp.MyApp" ...
should by dynamically adjusted by ant, just edit the line to
        <java mainClass="@MAIN_CLASS@" ...
and copy the template config file (here `myapp_template.exe4j`) with
          <copy tofile="myapp.exe4j" file="myapp_template.exe4j">
            <filterset>
              <filter token="MAIN_CLASS" value="com.mycorp.MyOtherApp" />
            </filterset>
          </copy>
before running the exe4j compiler as before.