PDA

View Full Version : How to set running JVM for installer that built without bundle JVM



yunrzhen
05-12-2010, 05:22 AM
If without bundle JVM when build the installer program, during installing that will random select a JVM from windows, how to set a JVM with specified patch. The install anywhere I used is version 8.

pv7721
05-12-2010, 06:27 AM
In the Advanced Designer, in the Project/Config there is a Installer Valid VM List where you can specify which version the installer is to be run against!

yunrzhen
05-12-2010, 10:44 PM
Thanks for your information. Could you print screen of the setting UI and post here? Thanks! I only find in the build->Build Targets can set "VM to Bundle with installer". By the way, I don't want to bundle a VM in the installer.

pv7721
05-13-2010, 01:59 AM
Here you go!

yunrzhen
05-14-2010, 05:46 AM
Thanks! Do you know how to set for JDK1.5 32 bit in the "Valid VM list". it seems that can set 1.5, but how to distinguish 32 bit and 64 bit

pv7721
05-15-2010, 03:30 AM
lax.nl.valid.vm.list
The list of VMs that this LaunchAnywhere Executable will allow the Java application to be run against. The value for this property can be any space- or comma-delimited combination of the following:

ALL (any VM)
JDK (any Java JDK)
JRE (any Java JRE)
1.4.*
1.5+

The value of this property will also override the value listed in lax.nl.current.vm if the VM listed in that property is not of a valid type. The order of the valid VM list specifies the precedence in which VMs found on the system should be chosen if a valid VM is not listed in lax.nl.current.vm.

So in your case I would say the best try would be 1.5*, but I don't think there is any 32 / 64 bit distinction, I think it'll maybe up to the installer, if it's a 32 / 64 bit one, it'll choose the right JVM (nevertheless, I think that bundling the correct JVM will save you from troubleshooting the countless different situations you may encounter, as you can never predict what spooky situation will be on customer's machine).

You also may want to check these documebnts:

http://www.flexerasoftware.com/webdocuments/PDF/ia_tip_understanding_JVM_selection.pdf
http://helpnet.flexerasoftware.com/robo/projects/installanywhere2009/kc_about_jre_vm_selection_criteria.htm (this one applies to IA 2009, though)

yunrzhen
05-20-2010, 05:10 AM
On windows 64bit box, The register table information for 32bit program will be located at HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node, 64bit program still at HKEY_LOCAL_MACHINE\SOFTWARE. System path for 32bit program is c:\windows\ SysWOW64, the patch for 64bit program is c:\windows\system32.
Due to that, sometimes I must select 32 bit JVM or 64 bit JVM. look at following scenario:
If a 32 bit software has been installed on 64 bit windows. the register table information is at HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\CompanyA. To read the register information, if the installer is invoked by a 32bit JVM, the code only need to reference "HKEY_LOCAL_MACHINE\SOFTWARE\CompanyA", but if invoked by a 64 bit JVM, the code must reference "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\CompanyA". that cause the installer code to be complex to support both 32 bit JVM and 64 bit JVM.

yunrzhen
05-24-2010, 04:26 AM
Hi pv7721,
Due to above reason, I have to distinguish 32bit and 64 bit JVM. Do you have a better way?

Thanks!