Exe4j Wizard - Step 5: Configure Java Invocation


In this step of the exe4j wizard, you enter the information required to start your application.

  The following properties of the java invocation can be edited in the General section of this step:
  • Main class
    Enter the fully qualified main class of your application. Next to the text field is a ... chooser button that brings up a dialog with a list of all public main classes in the class path. To use this facility, you have to set up your classpath first (see below).
  • VM parameters
    If there are any VM parameters you would like to specify for the invocation of your Java application, you can enter them here (e.g. -Dmyapp.myproperty=true or -Xmx256m).

    There are several runtime-variables you can use to specify runtime directories:

    • %EXE4J_EXEDIR%
      This is the directory where the executable is located.
    • %EXE4J_JVM_HOME%
      This is the directory of the JRE that your executable is running with.
    • %EXE4J_TEMPDIR%
      For the "JAR in EXE" mode, this variable will contain the location of the temporary directory for the JAR files. In "regular mode" this variable is not used.

    These variables can be especially useful for adding JAR files to the bootclasspath.

    exe4j has the ability to add specific VM parameters depending on the Java version. To set this up, click on the Configure version specific VM parameters button. In the dialog, add rows for each Java version that should receive specific VM parameters. The comparison checks if the Java version string starts with the specified characters, so "1.8" will match "1.8.0_60", for example. These VM parameters are added after the common VM parameters so you can use them to override common settings.

    In addition to these VM parameters, a parameter file in the same directory as the executable is read and its contents are added to the existing VM parameters. The name of this parameter file is 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 .vmoptions 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 are available:
  •  Scan directory
  •  Directory
  •  Archive
  •  Environment variable

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. 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, 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.