The JVM resolution bean is a product action that manages and executes the search for a VM when the installer is run. It is closely tied to the setup and execution of the Launcher Bean. It is called the JVM 'Resolution' bean because it uses its properties to resolve the location and settings for the VM required by the application being installed.

To enable the properties for a platform, check the Include box next to the Platform Properties title in the Properties View.

NOTE: For HP-UX, there are two platforms from which to chose: Hpux1020 and Hpux11x. Generic Unix Distribution is for Generic Unix.

InstallShield has provided a set of bundled VMs. You can see which are available by clicking the Add JVM... button in the Search Instructions dialog box. They are executable files residing in the appropriate platform-specific subdirectory below the "jvms" subdirectory where you installed MultiPlatform.

If any VM is acceptable for your application, it is recommended that you add all VM packages to the list in the JVM Search Instructions property.

You will need to enter platform-specific property values for each platform on which you wish the VM to be resolved, even if the property settings are identical for those platforms. The reason for this is that you may very often want to have a different search process on 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 by the developer. If any one step results in matching a VM, the remaining steps are bypassed, and this bean marks that VM as its match.

  1. 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 Location is non-blank.
  2. 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.
  3. Search makes use of the JVM Search Instructions property of this bean. Specify which VMs you wish to match, in which order, on the target machine. You can also specify the point at which a full disk search should occur. 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.
  4. Current reuses the VM 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 information about the VM it has located. If the Use Current property is "False", then this step is skipped.
  5. Install installs the bundled JVM specified by the Bundled JVM property. If this property is blank, then this step is skipped.

The end result of this process is that if a VM is matched, this JVMResolution bean keeps the information about the matched VM, and this information is "keyed" by the "JVM Id" property. It was mentioned above that the JVMResolution bean is intimately tied to the Launcher bean, and the JVM Id property is the property that 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 bean uses the VM that was matched by the previously installed JVMResolution bean whose JVM Id property is the same as the Launcher bean's JVM Id property.

For step-by-step instructions, see the MultiPlatform User's Guide, Chapter 2.2 Product Actions/JVM Resolution.