Exe4J Manual: © 2011 Ej-Technologies Gmbh. All Rights Reserved
Exe4J Manual: © 2011 Ej-Technologies Gmbh. All Rights Reserved
Index
exe4j help ......................................................................................................................................... 3 Licensing .......................................................................................................................................... 4 1 exe4j wizard ................................................................................................................................... 5 1.1 Overview ................................................................................................................................. 5 1.2 Step 1: Welcome ..................................................................................................................... 6 1.3 Step 2: Project Type ............................................................................................................... 6 1.4 Step 3: Application Info ........................................................................................................... 6 1.5 Step 4: Executable Info ........................................................................................................... 7 1.6 Step 5: Java Invocation ........................................................................................................... 8 1.7 Step 6: JRE ........................................................................................................................... 10 1.8 Step 7: Splash Screen .......................................................................................................... 11 1.9 Step 8: Messages ................................................................................................................. 11 1.10 Step 9: Compile Executable ................................................................................................ 12 1.11 Step 10: Finish .................................................................................................................... 12 1.12 Advanced options ............................................................................................................... 12 1.12.1 Redirection ................................................................................................................... 12 1.12.2 Service options ............................................................................................................. 12 1.12.3 Version info .................................................................................................................. 13 1.12.4 32-bit or 64-bit .............................................................................................................. 14 1.12.5 Execution level ............................................................................................................. 14 1.12.6 Native libraries .............................................................................................................. 15 1.12.7 Search sequence ......................................................................................................... 15 1.12.8 Preferred VM ................................................................................................................ 16 1.12.9 Splash screen options .................................................................................................. 17 1.13 Dialogs ................................................................................................................................ 18 1.13.1 Main class selection dialog ........................................................................................... 18 1.13.2 Class path dialog .......................................................................................................... 18 1.13.3 Search sequence dialog ............................................................................................... 19 1.13.4 Visual positioning ......................................................................................................... 20 2 exe4j launcher API ...................................................................................................................... 21 2.1 Controlling the splash screen ................................................................................................ 21 2.2 Receiving startup notifications .............................................................................................. 21 3 exe4j command line compiler ...................................................................................................... 22 3.1 Overview ............................................................................................................................... 22 3.2 Options .................................................................................................................................. 22 3.3 Using exe4J with ant ............................................................................................................. 23 3.4 Relative resource paths ........................................................................................................ 24
Welcome to exe4j!
exe4j creates Windows executables that invoke your Java applications and integrates them into the Windows environment. The use of exe4j s use is not time limited, but restricted to evaluation purposes. Evaluation warnings are removed after purchasing an exe4j license [p. 4] . Quick start To get an overview of exe4j's features, please have a look at the sample projects in the demo directory of your exe4j installation. When starting exe4j, a wizard [p. 5] will guide you step by step through collecting the necessary information to create your executable. A command line compiler [p. 22] is available to facilitate the inclusion of exe4j into an automated build process like ant [p. 23] .
-3-
exe4j Licensing
Without a valid license, exe4j may be used for evaluation purposes only. The evaluation period is not time limited, but excludes any use for creating distributions of commercial products. exe4j licenses can be purchased easily and securely online. We accept a large variety of payment methods including credit cards, checks and purchase orders. Pricing information is available online. You can enter your license key in the welcome step [p. 6] of the exe4j wizard. If a license has been entered, the licensing information is visible there. The exe4j command line compiler [p. 22] also prints licensing information except when invoked with the quiet option [p. 22] . Please read the included file license.txt to learn more about the scope of the license. For licensing questions, please contact [email protected]. License key dialog: Together with your license key, you are asked for your name and - if applicable - for the name of your company. To make it easier for you to enter the license key, you can use the [Paste from clipboard] button, after copying any text fragment which contains the license key to your system clipboard. If a valid license key can be found in the clipboard content, it is extracted and displayed in the dialog.
-4-
1 exe4j wizard
1.1 exe4j Wizard - Overview
When invoking exe4j from the start menu, the desktop icon or by executing bin\exe4j.exe in the exe4j installation directory, the exe4j wizard is started. It guides you step by step through completing the required information for building the executable. The window of the wizard has three distinct areas:
(1) Index The index of steps lists all steps of the wizard and highlights the current step in bold face. You can click on any step in the index to arbitrarily move between wizard steps. Alternatively, you can use the navigation controls (see below). (2) Current step The information for the current step is entered here. See the help pages for each step [p. 5] for specific information. (3) Navigation The navigation bar allows you to move back and forward through the steps of the wizard with the [Next] and [Previous] buttons. The [Finish] button allows you to complete the wizard immediately without moving through the remaining steps. Should any required information be missing, the wizard will alert you to it. The [Help] button shows context specific help that is also available by pressing F1. With the [Cancel] button you can leave the wizard at any time. Should you have made modifications to the configuration, you will be asked whether you want to save your changes before the wizard exits.
-5-
By default, the wizard starts with a template config file that contains default values where appropriate. The template config file is loaded from config\template.exe4j in the exe4j installation directory. If you would like to load a config file at startup, you can pass the path of the desired config file to the wizard executable (bin\exe4j.exe in the exe4j installation directory).
Enter the distribution source directory in the Directories section of this step. The distribution source directory is the topmost directory under which all other directories of your application reside. Many directories and file paths that are referenced by the executable need to be known as relative rather than absolute paths. If you select such directories and files in later steps by means of a file chooser, the paths will be converted to paths relative to the distribution source directory. Enter the executable directory in the Directories section of this step. The executable directory is the directory below the distribution source directory where the executable is to be placed. You can leave the output directory empty (or enter a ".") to make it equal to the distribution source directory. If you choose a directory with the file chooser (by clicking the [...] button), the directory will be converted into a path relative to the distribution source directory. Jar-in-Exe Mode Enter the output directory to determine where exe4j should place the generated application.
-7-
Icon file If you would like a custom icon to be compiled into your executable, select the Icon file checkbox and choose an icon file (extension *.ico). Working directory For some applications (especially GUI applications) you might want to change the working directory to a specific directory relative to the executable, for example to read config files that are in a fixed location. To do so, please select the Change working directory to: checkbox and enter a directory relative to the executable in the adjacent text field. To change the current directory to the same directory where the executable is located, please enter a single dot. Allow only a single running instance of the application If you select this checkbox, the generated exe4j executable can only be started once. Subsequent user invocations will bring the application to the front. In the Controller class of the exe4j launcher API you can register a startup handler to receive the command line parameters. In this way, you can handle file associations with a single application instance. Fail if an exception in the main thread is thrown Executables created by exe4j can monitor whether the main method throws an exception and show an error dialog in that case. This provides a generic startup error notification facility for the developer that handles a range of errors that would otherwise not be notified correctly. For example, if an uncaught exception is thrown during application startup, a GUI application might simply hang, leaving the user in the dark about the reasons for the malfunction. With the error message provided by the exe4j executable, reasons for startup errors are found much more easily.
the same as the exe file with the extension *.vmoptions. For example, if your exe file is named hello.exe, the name of the VM parameter file is hello.vmoptions. In this file, each line is interpreted as a single VM parameter. For example, the contents of the VM parameter file could be: -Xmx128m -Xms32m It is possible to include other .vmoptions files from a .vmoptions file with the syntax -include-options [path to other .vmoption file] You can use multiple includes in a single file, recursive includes are also supported. You can also add this option to the fixed VM parameters. In that way, you can prevent having to use the .vmoptions file right next to the executable. This allows you to to centralize the user-editable VM options for multiple launchers and to have .vmoptions files in a location that can be edited by the user if the installation directory is not writable. You can use environment variables to find a suitable directory, for example -include-options ${APPDATA}\My Application\my.vmoptions or -include-options ${USERPROFILE}\.myapp\my.vmoptions In addition to the VM parameters you can also modify the classpath in the .vmoptions files with the following options: -classpath [classpath] Replace the classpath of the generated launcher. -classpath/a [classpath] Append to the classpath of the generated launcher. -classpath/p [classpath] Prepend to the classpath of the generated launcher. You can use environment variables in the VM parameters with the following syntax: ${VARIABLE_NAME} where you replace VARIABLE_NAME with the desired environment variable. arguments If you need to specify arguments for your main class, you can enter them here. Arguments passed to the executable will be appended to these arguments. Allow VM passthrough parameters If you would like to allow the user to specify VM parameters with the syntax -J[VM parameter] (e.g. -J-Xmx512m), select the Allow VM passthrough parameters checkbox. In the Class path section of this step you can configure the class path and the error handling for missing class path entries. The class path list shows all class path entries that have been added so far. The following types of class path entries [p. 18] are available: Scan directory
-9-
The symbol prepended to an entry indicates that an error with that entry will lead to a startup failure with an error message displayed to the user. The control buttons on the right allow you to modify the contents of the class path list: Add class path entry (key INS) Invokes the class path entry dialog [p. 18] . Upon closing the class path entry dialog with the [OK] button, a new class path entry will be appended to the bottom of the class path list. Remove class path entry (key DEL) Removes the currently selected class path entry without further confirmation. Move class path entry up (key ALT-UP) Moves the selected class path entry up one position in the class path list. Move class path entry down (key ALT-DOWN) Moves the selected class path entry down one position in the class path list. To change the error handling mode of a class path entry [p. 18] , select the class path entry and press [Toggle 'fail on error'] right below the class path list or choose the corresponding menu item from the context menu.
- 10 -
For more detailed requirements on which JRE should be used (e.g. for bundling your own JRE in the distribution), please see the search sequence advanced options step [p. 15] and the preferred VM advanced options step [p. 16] .
- 11 -
Windows services are installed by passing /install to the generated service executable. The default start mode of the service can be determined in this step: start on demand In start on demand mode, your service must be manually started by the user in the Windows service manager. Use this option, if you're not sure if your users will actually want to run your application as a service, but you want to give them an easy way to do so. This installation mode can be forced if the user passes /install-demand to the generated executable instead of /install. auto start In auto start mode, your service is always started when Windows is booted. This installation mode can be forced if the user passes /install-auto to the generated executable instead of /install. Windows services are always uninstalled by passing /uninstall to the generated service executable. All command line switches also work with a prefixed dash instead of a slash (like -uninstall) or two prefixed dashes (like --uninstall). To start or stop the service, the /start and /stop options are available. In addition, a /status argument shows if the service is already running. The exit code of the status command is 0 when the service is running, 3 when it is not running and 1 when the state cannot be determined (for example when it is not installed). As a second parameter after the /install parameter, you can optionally pass a service name. In that way you can install a service with a different service name than the default name. Use the same service executable to start multiple services with different names. To distinguish several running service instances at runtime, you can query the system property exe4j.launchName for the service name. Note that you also have to pass the same service name as the second parameter if you use the /uninstall, /start and /stop parameters. In some situations, you might want to install the service as a non-interactive service meaning that the service will not have any possibility to access the GUI subsystem. In order to do that, add non-interactive after the /install parameter. A custom service name can still be specified after the non-interactive parameter. If your service depends on another service, say a database, you can enter the service name of the other service in the dependencies text field. You do not have to enter core OS services such as filesystem or network, these services will always be initialized before your service is launched. If you have dependencies on multiple services, you can enter a list of these service names separated by commas. 1.12.3 exe4j Wizard - Version Info Note: this advanced option screen is reachable by selecting the "Executable" step [p. 7] and choosing "Version info" from the [Advanced options] popup menu or by clicking directly on the index. In this step of the exe4j wizard [p. 5] , you can configure whether a version info resource should be generated in the executable and what values the version info fields should take. A version info resource will enable the Windows operating system to determine meta information about your executable. This information is displayed in various locations. For example, when opening the property dialog for the executable in the Windows explorer, a "Version" tab will be present in the property dialog if you have chosen to generate the version info resource.
- 13 -
The version info resource consists of several pieces of information. If you check Generate version info resource, there are several fields whose values must be entered in the text fields on this step. Note that the "original file name" and the "product name" fields in the version info resource are filled in automatically by exe4j. Product version The product version must be composed of a maximum of 4 numbers, separated by spaces, commas or dots. By using the -r flag for the command line compiler [p. 22] , the product version can be overidden. The product version is also used in the splash screen version line config [p. 11] as a replacement value for the variable %VERSION%. File version If you want to specify a version for the file which is a different from the product version, you can do it here. If this field is left empty, the product version will be used for the file version. Internal name Choose a short internal name for identifying your application. Company name Enter the name of your company. File description Enter a description of the application. Legal copyright Enter a copyright statement for your application. 1.12.4 exe4j Wizard - 32-bit or 64-bit In this step of the exe4j wizard [p. 5] , you can configure whether your executable should be a 32-bit executable or a 64-bit executable. On Windows, a native executable can be either a 32-bit or a 64-bit executable. If you need a 64-bit JRE for your application you can choose to generate a 64-bit executable. Note that it is not possible to create launchers that work with both 64-bit and 32-bit JREs. Since the launcher starts the JVM with the JNI interface by loading the JVM DLL, the architecture has to be the same. If you target both 32-bit and 64-bit JREs and operating systems, you have to generate different executables for them. On a 64-bit Windows, there are separate system directories for 32-bit and 64-bit applications. If you enable the 64-bit executable mode in this step, those system directories will be appropriate for 64-bit applications, e.g. c:\Program Files instead of c:\Program Files (x86). 1.12.5 exe4j Wizard - Execution Level In this step of the exe4j wizard [p. 5] , you can configure the execution level for your executable on Windows Vista and higher. The execution level can be one of As invoker This is the default setting. The executable will be executed with the rights of the current token. If the user is an Administrator, this will be a filtered token so the executable will not have all administration rights. Highest available
- 14 -
This level will raise the rights of the executable to the maximum extend available for the current user. This applies to Administrators that usually run with a filtered token. Windows Vista and higher will show a question to the user if he wants to elevate the rights of this application. For a standard user this is the same as "As invoker". Require administrator This is the same as "Highest available" when the user is an Administrator running with a filtered token. If the user is a standard user, Windows Vista and higher will ask for the credentials of an Administrator account. 1.12.6 exe4j Wizard - Native library directories In this step of the exe4j wizard [p. 5] , you can configure directories that contain native libraries. If your application uses native libraries that you would lke to load with a System.loadLibrary() call, the directory where the .dll is located must be included in the PATH environment variable. You can add such directories in the path list of this step. Add native library directory (key INS) Lets you add a new directory to the end of the list. Choose the native library directory in the file chooser that appears after clicking this button. The directory will be converted to a path relative to the distribution source directory. Remove native library directory (key DEL) Removes the currently selected native library directory entry without further confirmation. Move entry up (key ALT-UP) Moves the selected native library directory entry up one position in the path list. Move entry down (key ALT-DOWN) Moves the selected native library directory entry down one position in the path list. 1.12.7 exe4j Wizard - Configure Search Sequence Note: this advanced option screen is reachable by selecting the "JRE" step [p. 10] and choosing "Search Sequence" from the [Advanced options] popup menu or by clicking directly on the index. In this step of the exe4j wizard [p. 5] , you can configure the way the exe4j executable looks for an appropriate JRE or JDK to start your Java application. The versions requirements for the JRE are specified in a different step [p. 10] . The search sequence list shows all search sequence entries that have been added so far. For new configurations, a default search sequence is pre-defined. The following types of search sequence entries [p. 19] are available: Search registry Directory Environment variable
The control buttons on the right allow you to modify the contents of the search sequence list: Add search sequence entry (key INS) - 15 -
Invokes the search sequence entry dialog [p. 19] . Upon closing the search sequence entry dialog with the [OK] button, a new search sequence entry will be appended to the bottom of the search sequence list. Remove search sequence entry (key DEL) Removes the currently selected search sequence entry without further confirmation. Move search sequence entry up (key ALT-UP) Moves the selected search sequence entry up one position in the class path list. Move search sequence entry down (key ALT-DOWN) Moves the selected search sequence entry down one position in the class path list. It is possible to generate a log file that contains information about the JRE search sequence and any potential problems. In order to switch on logging, please define the environment variable EXE4J_LOG=yes and look for the newest text file whose name starts with i4j_nlog_ in the Windows temp directory. This information can be used for debugging purposes. If you have a problem with JRE detection, please send this log file along with your support request. An easier way for a user to create a log file is to start the launcher with the /create-i4j-log argument. The launcher will notify the user where the log is created and will offer to open an explorer window with the log file selected. After the message box, the launcher will continue to start up. Tip: To distribute your own JRE, simply put the JRE in your distribution and define a search sequence entry with the appropriate relative path (e.g. jre) as the first item. directory
If the entire search sequence fails, exe4j will try the location defined by the environment variable EXE4J_JAVA_HOME. If that fails too, an error message will be displayed asking the user to define this variable. To supply a custom variable, define an appropriate environment variable search sequence entry and customize the corresponding error message in the messages step [p. 11] of the wizard. 1.12.8 exe4j Wizard - Choose Preferred VM Note: this advanced option screen is reachable by selecting the "JRE" step [p. 10] and choosing "Preferred VM" from the [Advanced options] popup menu or by clicking directly on the index. In this step of the exe4j wizard [p. 5] , you can configure the preferred VM that exe4j will choose to invoke your application. This setting only influences the choice of the VM type after a JRE has been selected according to the search sequence. The search sequence for the JRE is specified in a different step [p. 10] . After exe4j finds a suitable JRE or JDK, it tries to honor the setting you make in this step. You can select one of the following: default VM exe4j will use the default VM for the found JRE. client hotspot VM exe4j will try to use the client hotspot VM for the found JRE. This is equivalent to using the -client switch when invoking java from the command line. server hotspot VM exe4j will try to use the server hotspot VM for the found JRE. This is equivalent to using the -server switch when invoking java from the command line.
- 16 -
Please note that it is not an error if the selected JVM is not present for the found JRE. exe4j will simply use another JVM to launch your application in that case. 1.12.9 exe4j Wizard - Splash Screen Options Note: this advanced option screen is reachable by selecting the "Splash screen" step [p. 11] and choosing "Splash screen options" from the [Advanced options] popup menu or by clicking directly on the index. The options in this step are only available if "exe4j splash screen" was chosen in the "Splash screen" step [p. 11] . The behavior of the splash screen can be defined in the General section of this step: Hide splash screen when first application window is shown If this option is checked, the exe4j executable will monitor the state of your application and hide the native splash screen as soon as a window is opened. If you want to hide the splash screen programmatically, you can use exe4j's launcher API [p. 21] . Splash screen is always on top If this option is checked, the splash screen remains always on top of other windows opened by your application. The Status line and Version line sections allow you to position the text lines on the splash screen and configure their font. The status line is dynamically updatable with exe4j's launcher API [p. 21] . If you include the variable %VERSION% in the version line text, it will be replaced with the product version defined in the version info step [p. 13] of the wizard. With the -r flag, you can override this setting for the command line compiler [p. 22] . You can configure the following properties of a text line Text The (initial) text displayed in the text line. Position The x and y-coordinates of the text line on the splash screen. The origin of the coordinate system is the top left corner of the splash screen window. Font The font used for drawing the text line: Name The name of the font. Please choose a common font name that is likely to be available on all target platforms. If unavailable at runtime, the MS Dialog font will be used as a fallback. Weight The weight of the font. The 8 Windows standard font weights are offered as a choice. Size The size of the font in points. Color The color of the font. By clicking on [...], a color chooser dialog is brought up.
To visually position the text lines with mouse and keyboard on the actual splash screen image, please click on the [Position text lines visually] button. The visual positioning dialog [p. 20] will then
- 17 -
be displayed. On exiting the dialog with the [OK] button, the X/Y coordinate text fields (see above) will be updated for both text lines.
1.13 Dialogs
1.13.1 Main class selection dialog The main class selection dialog is shown when clicking on the [...]chooser button next to the main class text field in the Java invocation step [p. 8] . Please choose a main class from the list and click on [OK] or double-click on the selected class. If you do not want to make a choice, please click on [Cancel]. 1.13.2 Classpath entry dialog The class path entry dialog is shown when clicking on the add button in the "configure java invocation" step [p. 8] of the exe4j wizard. Upon closing this dialog with the [OK] button, a new class path entry will be appended to the bottom of the class path list of that step. To define a class path entry, you first select the entry type, then check the fail if an error occurs with this class path entry checkbox in case you want the startup to be terminated if this class path entry is faulty and finally fill out the Detail section of the dialog which is dependent on the selected entry type. The following entry types are available: Scan directory Scan a directory for archives with the extensions *.jar and *.zip to be added to the class path. In the Detail section of the dialog you must choose a directory either by entering the path in the text field or by clicking [...] and choosing it with a file chooser. Error handling: If fail if an error occurs with this class path entry is checked, the application will terminate with an error message if this directory does not exist. Note: Not available if the project type [p. 6] is "JAR in EXE" Directory Add a directory to the class path. In the Detail section of the dialog you must choose a directory either by entering the path in the text field or by clicking [...] and choosing it with a file chooser. Error handling: If fail if an error occurs with this class path entry is checked, the application will terminate with an error message if this directory does not exist. Note: Not available if the project type [p. 6] is "JAR in EXE" Archive Add an archive with the extension *.jar or *.zip to the class path. In the Detail section of the dialog you must choose an archive either by entering the path in the text field or by clicking [...] and choosing it with a file chooser. The last path component can include a * as a placeholder for a frequently changing version number. This is not a wildcard for processing multiple matching paths, rather it is intended for systems like maven where the version number on dependencies is part of the file name and is frequently changed. An example is bin\commons-io-*.jar which will match a file like
- 18 -
bin/commons-io-1.0.jar at compile time. This replacement is performed at compile-time and not a runtime. Error handling: If fail if an error occurs with this class path entry is checked, the application will terminate with an error message if this archive does not exist. Environment variable Add the contents of an environment variable to the class path. In the Detail section of the dialog you must enter the name of an environment variable. Error handling: If fail if an error occurs with this class path entry is checked, the application will terminate with an error message if this environment variable is not defined. Except for the "Environment variable" classpath type, you can use environment variables in the text field with the following syntax: ${VARIABLE_NAME} where you replace VARIABLE_NAME with the desired environment variable. The directory of the JRE that your application is running with is contained in ${EXE4J_JVM_HOME}. If you've specified in the Configure JRE step [p. 10] , that only JDKs and no JREs should be used, you can append \.. after the variable to change into the JDK home directory. For example, to reference tools.jar, you'd have to write %EXE4J_JVM_HOME%\..\lib\tools.jar. Note that for path selections by means of a file chooser ([...] buttons), exe4j will try to convert the path to be relative to the distribution source directory. 1.13.3 Search sequence entry dialog The search sequence entry dialog is shown when clicking on the add button in the "configure search sequence" step [p. 15] of the exe4j wizard. Upon closing this dialog with the [OK] button, a new search sequence entry will be appended to the bottom of the search sequence list of that step. To define a search sequence entry, you select the entry type and fill out the Detail section of the dialog which is dependent on the selected entry type. The following entry types are available: Search registry Search the Windows registry for installed JREs and JDKs by Sun Microsystems. Directory Look in the specified directory. This is especially useful if you distribute your own JRE along with your application. In that case, be sure to supply a relative path. Note that for path selections by means of the file chooser ([...] button), exe4j will try to convert the path to be relative to the distribution source directory. Environment variable Look for a JRE of JDK in a location that is defined by an environment variable like JAVA_HOME or MYAPP_JAVA_HOME.
- 19 -
1.13.4 Visual positioning of text lines The visual positioning dialog is shown when clicking on the [Position text lines visually] button in the "configure splash screen" step [p. 11] of the exe4j wizard. Upon closing this dialog with the [OK] button, the X/Y coordinate text fields will be updated for status and version text lines in that step. The visual positioning dialog displays the selected image with overlaid status and text line placeholders that are surrounded on the left and bottom by lines. These lines flash for the selected text line. You can position the selected text line on the image by dragging it with the mouse or using the cursor keys. Pressing CTRL with the cursor keys moves the text line in larger steps. Please note that only the font color is reflected in the font of the text line placeholders. Font weight, font size and font name are only used in the native runtime version of the splash screen.
- 20 -
- 21 -
-x or --require-license By default, exe4j will fallback to evaluation mode if the license key is not valid. If you want the compilation to fail instead, you can spcify this option. -r STRING or --release=STRING override the application version defined in the version info step [p. 13] . STRING must be replaced with the desired version number. The version number can only contain numbers and dots. -d STRING or --destination=STRING override the destination directory for the executable. STRING must be replaced with the desired directory. If the directory contains spaces, you must enclose STRING in quotation marks. Note that this option does not affect the interpretation of relative paths defined by the distribution source directory and the output directory as specified in the application step [p. 6] of the exe4j wizard.
verbose
quiet
test
- 23 -
release
Corresponds to the --release command line option [p. 22] . Enter a version number like "3.1.2". The version number may only contain numbers and dots. Corresponds to the --require-license command line option [p. 22] . Corresponds to the --destination command line option [p. 22] . Enter a directory where the generated launcher should be placed.
No
requirelicense
No
destination
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.
- 24 -