Further options and runtime behavior are different for installers and archives:
Bundle type section allows you to choose between the two JRE bundling modes
offered by install4j:
- Static bundle
The selected JRE will be distributed in your media file. install4j will
automatically adjust the
JRE search sequence
of all generated launchers and include the bundled JRE as the first choice.
A statically bundled JRE will always be distributed inside the
installation root directory, on Windows and Linux/Unix
in the directory
jre and on macOS in
The content directory is available from the installer runtime variable
and resolves to the installation directory for folder media file types and
for archive media file types. The actual location of the JRE installation directory is available from
the installer runtime variable
sys.preferredJre after the "Install files" action
When you update your application and include a static JRE bundle again,
the old JRE bundle will be deleted prior to installation, so that any
files left over from the old JRE cannot interfere with the new JRE.
- Dynamic bundle
A dynamic bundle is downloaded on demand. If the user already has a suitable JRE installed,
that JRE will be used. If there is no such JRE available on the target machine,
the installer will download the dynamically bundled JRE from the URL that you specify in the
text fields below.
To enable the download on demand, you have to locate the corresponding
.tar.gz bundle archive in the
jres subdirectory of your install4j installation
and place it on a server so that the
HTTP download URL will point
to the bundle archive. The URL has to be of the form
If the installer determines that there is no suitable JRE present, it will ask the user
whether the JRE should be downloaded. If the
Start download without user confirmation, if necessary
check box has been selected, that confirmation is skipped and the download starts immediately.
On Windows, a progress bar with download speed and estimated duration will be displayed
during the download.
On Unix-like systems, the progress will be shown in the terminal. Adding an FTP download
URL will increase the chance that the download will work on Unix-like systems behind
If the download fails or is aborted by the user, the download URL will be displayed
together with instructions on where to place the downloaded bundle archive.
You can override the default JRE search in a Microsoft Windows installer executable by
passing the argument
-manual to the installer executable. The installer will then
report that no JRE could be found and offer you to locate one in your file system. If you have set up
a dynamic JRE bundle, it will also offer you to download one. This is a good way to test if your
download URL is correct.
The check box
install as a shared JRE determines whether the bundled JRE should be
private for the application or whether other applications distributed with install4j can share this JRE.
The following scenarios are covered by this approach:
If you distribute several applications with dynamically bundled JREs, installing as a shared JRE is
advisable, since the user will have to wait for the download only once.
If you have a main application and several add-on applications, it makes sense to statically
bundle the JRE with the main application and install it as a shared JRE, so the add-on applications
can be distributed without JRE.
Note: installers generated by install4j will never install a JRE on the system path or
make Windows registry changes.
The term "shared installation" only applies to applications distributed with install4j. Other applications
will not be able to use such a JRE.
install4j will automatically adjust the
JRE search sequence
of all generated launchers and include the bundled JRE as the first choice. The JRE will
always be distributed in the directory
jre right below the
installation root directory.