The Uninstaller JVM resolution bean is a product action that manages and
executes the search for a JVM to be used by the uninstaller launcher. This
search process occurs at the very beginning of a product installation as long
as the Uninstall JVM Resolution bean is active. It is
closely tied to the setup and execution of the UninstallerLauncher bean. It is
called the Uninstaller JVM Resolution bean because it uses its properties to
resolve the location and settings for the JVM required by the uninstaller launcher.
The Uninstaller Launcher bean typically uses the JVM matched by the
Uninstaller JVM Resolution bean at runtime. Other Launcher
beans defined in your product tree can also use it. A good use case for this
functionality is that the developer may want to search for a JVM once when the
installer is executed, and then use that JVM for the installer, the Java
product(s) being installed, and the uninstaller.
To enable the properties for a platform, check the Include box next to that Platform.
InstallShield has provided a set of bundled JVMs. To see which
are available, click the Add button in the JVM Search Instructions
dialog box. These are executable files that reside in the appropriate platform-specific subdirectory below the "jvms" subdirectory where MultiPlatform is installed.
If any JVM is acceptable for the application, we recommend you add
all JVM packages to the list in the JVM Search Instructions
property.
Platform-specific property values need to be entered for each platform
on which the JVM needs to be resolved, even if the property settings are
identical for those platforms. The reason for this is to enable different search processes on
the different platforms.
JVM Resolution Algorithm
The following steps describe the algorithm used when resolving a JVM based
on the property values specified for this bean. If any one
step results in matching a JVM, the remaining steps are bypassed, and this
bean marks that JVM as its match.
- If you set Use Installed JVM to "True", and there is already a JVM installed
on the target machine in the Install Directory, then it will match that JVM
immediately. This will only occur if the Install Directory property is non-blank.
- The JVM Resolution property determines the order in which the next three
resolution steps occur. Those steps include "Search", "Current" and "Install",
and they are described in the following steps:
- Search makes use of the JVM Search Instructions property of this
bean. Specify which JVMs you wish to match, in which order, on
the target machine. Also specify the point at which a full disk search
should occur, if necessary. The bean help for JVM Search Instructions provides details on how to set up this property. If the JVM Search Instructions property is empty,
then this step is skipped.
- Current reuses the JVM being used for the installer itself, if
possible. This only works if the installer was executed using a native
distribution, since the native distribution communicates to the installer the
information about the JVM it located. If the Use Current JVM property is
"False", then this step is skipped.
- Install installs the bundled JVM specified by the Bundled JVM
property. An Alias ("$A()") can be used for this property. If this property is empty, this step is skipped.
The end result of this process is that if a JVM is matched, this JVM Resolution
bean keeps the information about the matched JVM, and it is "keyed"
by the JVM ID property. As mentioned above, the JVM Resolution bean is intimately tied to the Launcher bean - The JVM ID property ties them together. The purpose of the Launcher bean is to provide a native executable that launches a Java application. The executable that is created by a Launcher uses the JVM that was matched by the previously installed JVM Resolution bean whose JVM ID property is the same as the Launcher bean's JVM ID property.