Launcher Options

JExpress uses a non-platform specific way to define ways for your customers to launch your application. For example, if your customer runs your installer on a Windows computer, then JExpress adds a Windows menu item on the Start | Programs menu. It also creates a desktop icon and a double-clickable exe in your application directory to start your Java apps. JExpress can even install java and native apps as a service. If another customer uses the same installer on a Mac, then there's an APP bundle and desktop icon. And, someone using the same installer on another Unix system has a launch script ready for them and a menu if the customer is running KDE, Gnome, or Xfce.

Learn how to convert PNG to an ICO or ICNS file.


You can have your launch items added to the highest level of the menu system or desktop, or you can define a Group. If you'd like the launchers to be added to a deeper Group, then simply put a forward slash (/) in between each Group. You always use the forward slash regardless of the OS you are using or targeting.

Click on the Add button to create a new launcher or the Edit button to modify the settings for a launcher you defined previously. Another dialog box opens that lets you define how the launcher will work.

Add a check mark to Tell user how to start your application check box if you want your installer to remind your customers running on Windows which Group to use to start your application.

Launcher Settings

Click on the jump point or just page down to learn more about each setting for a launcher.



Display name

Fill in the name you'd like to appear on systems that support long names, e.g., Windows, Macintosh, Gnome, and KDE.

On Windows machines, JExpress creates a menu item and desktop icon with this name and on Mac it creates a desktop icon and APP bundle using the display name.



Icon filename

The filename that contains an icon to display when configuring this launcher on Windows, Mac OS X (Java apps only), KDE, or gnome. All the icon files must contain the same base name with the matching extension and they must all be located in the same directory.

For example, if you want to create launchers with icons on Windows, Mac, and KDE, then you'd create 3 icon files with the same base name (i.e., the name to the left of the period) and the extensions .ico, icns, and .png (for Windows, Mac, and KDE, respectively). All the files would need to be located in the same directory and you'd enter the full directory name and basename into the "icon filename" field on the launch dialog box. So if your icons reside in c:\myapp\icons and you have the files myicon.ico, myicon.icns, and myicon.png in that directory, you'd enter: c:\myapp\icons\myicon in the "icon filename" field.

Here's a list of the icon extensions for the various platforms:

Platform File extension
Windows .ico
Mac OS X .icns
KDE ** .png

Notes ** If there is a base name with both a .png and .xpm extension, then the .png file will be used in a Gnome, KDE, or Xfce menu.

*** On Windows, the icon you specify is only used in the menu, not the EXE file that JExpress creates. You may be able to change the icon for the EXE with a freeware tool like Resource Hacker to the EXEs in the winapp\javamenus subdirectory. Remember that you'll need to apply the new icon whenever you receive an update to JExpress because JavaApp.exes can change with new versions.

DeNova does not officially support changing icons with third party programs, but it has worked for some of our customers. The most reliable way to change this is to buy an Enterprise license and change the icon included in the build.

Learn how to convert PNG to an ICO or ICNS file.



Java application

If this launcher will start a Java application, then you should select this radio button so JExpress will automatically add the command (e.g., jre/java) to the class. If the launcher is a batch file or script which starts the JRE and your Java app, then do not add a check mark to this field and instead select the Native program radio button.



Native program

If this launcher will start a program native to the OS, such as a preconfigured APP bundle or EXE, then select this radio button. You should also click the Advanced button and select the appropriate OS that this native program should run on.



Main classname or Executable file

If the launch item will start a Java app and you have a check in the Java command box, then you can click the Search button to select the classname. A list of all classes that the installer will be able to find in the user's classpath will be displayed. If you distribute jar files, the JExpress only includes the Main-Class specified in the jar file's manifest in the list of available class names.

It can take a long time to find all the classes so you may need to be patient. If you spot the classname that you want to use, then you can click the Stop button and select the classname.

Or, you can simply type in the name of the Java class, including the package name, or stand-alone program that you want started when someone selects this launch item.

If the launcher starts your Java app, then the classname, including any required package name, that contains the main() method must be entered into this field. For example, if your Java application's main() is in myApp.class and myApp.class is part of the com.myCompany package, then you should enter com.myComany.myApp into the Executable file field.

If you don't know the name of the class that contains the main method and your class files are contained in a JAR file, then you can unjar your JAR file and look at the META-INF/MANIFEST.MF file with a text editor. You'll find a line, near the top of the file, which gives the property for the Main-Class:. Copy the entire line after the : and paste it into the Executable file field.

Important: If you usually start your Java app with the -jar parameter and you don't want your app installed on Mac, then please follow the instructions in the tutorial to insure that all the fields are entered correctly.

If this launcher is for a native program and that program is distributed with the installer (i.e., the program is on the Select files panel), then this field should include the program name, not the full path. If the file is in a subdirectory of the installer, then include that subdirectory before the program name and separated by the appropriate file separator. Your JExpress installer automatically adjusts the file separators (e.g., \ or /) to the target system.

If you want to create a launcher on Windows that displays an HTML file, then you should fill in the HTML filename is this field. Almost all Windows systems today are configured so they will automatically launch the user's web browser when the command line contains an .html or .htm filename. You should not include check marks in the Unix and Mac fields because no other OS consistently launches a browser when a filename is invoked.

Required field.



Desktop icon

Add a check mark if you want a desktop icon added when the target machine is Windows or Mac OS X.



Start after installer

Add a check mark if you want this launcher to be started after the installer finishes or after the service is installed.

If you create a silent installer, then the launcher will still be started when the installation is finished. But, if the user starts a wizard or click free installer from the command line with the silent switch, then the launcher will not be activated.



Install as a service

JExpress supports installing native and java apps as a service on Windows. It also supports installing native apps as a daemon on Linux. If you also want java apps installed as a daemon on Linux, please let us know.

You can learn more about convering your java app to a service.

A service launcher can be used with an updater-on-demand, but not with an auto-updater. If you want an auto-updater for your project, then you must create a separate launcher for an individual to use.



Start after login

Add a check mark if you want this launcher to start whenever the user logs into their account.



Auto update

Add a check mark to whichever launcher you want to activate the auto-updater. You must also have the Auto-update every time selected on the Auto Update panel.



All users

Add a check mark if you want the launcher created for all users on Windows machines.



Run as admin

Add a check mark if you want the launcher for a Java app to run as admin on Windows 10, Windows 7, Windows 8, or Mac OS X 10.6.x or later. If you are distributing a native program and you've configured it to require admin privledges, then of course, it will run that way.





Install on

Select which operating systems that you want this launcher installed. If the launcher is for a native program, then you should only select the OS which the program is native.



Command line arguments

If the program identified in the Executable file field above needs any special command line parameters, then enter them here.

If you need to pass the installation directory or the Java home's directory on the command line, then you can use a variable. Use [$AppDir] to represent the application's installation directory, [$JavaHomeDir] for the Java home's directory, [$UserHomeDir] for the user's home directory, and [$WorkingDir] for the working directory. When JExpress installs your application, it will change the variables to the appropriate information without a trailing directory separator. Case and spacing are critical for the variable names. You should probably include double quotes around any directory names/filenames that use variables, in case the user installs your app in a directory with spaces.

If you specify any directories in the command parameters, you must use a back slash (\) as the path separator, regardless of the machine you're operating JExpress or the target machine for the installation. The installer will automatically convert all back slashes in the command arguments to the target system's file separator.

Important: Please note that the way to a enter file separator in the JVM extra parameters is not the same as the method used for in the command line arguments for a launcher. Sorry for the inconsistency, but to mantaintain backward compatibility, the 2 methods will continue to be supported.

When JExpress installs your app on Windows, it will store the command line argument in the .properties file associated with the launcher. The .properties file is located in the JExpress subdirectory of the installation directory and uses the same name as the .EXE for the launcher.



Working directory

Usually, you should leave this field blank and the working directory will default to the installation directory. If you do want a launcher to have a starting directory other than the install directory, then fill it in.

It's recommended that you make the working directory relative to the install directory so JExpress can adapt it to each customers' computer as appropriate.

If the launcher is for a java application and the working directory is not the same as the install directory, then JExpress will automatically add the working directory to the classpath for this launcher.



Associated install type / component / directory

If you are creating a multiple type installer, or a multiple component installer, or an installer with multiple target directories, then you should assign each launch item to a particular install type / component / target directory. Whenever the user selects the associated install type / component / directory, then only the launchers with the same name in this field will be installed.

If you leave the field blank, then the launcher will be skipped.



Show Java console

If you're creating a launcher for a Java application which requires the console, then add a check mark to this box so JExpress will automatically use the console based JVM.



Script name

You can enter the name you'd like JExpress to use on systems that support scripts, e.g., Unix. This name will be used to create a script on the target system. If you leave the field blank, then JExpress will shorten the display name.



Unix GUIs

If this launcher will be installed on unix systems, then you can also decide which GUIs you'd like to support if they are installed. JExpress handles the most popular GUIs: gnome, KDE, and Xfce.