By adding an answer to @Joni, you can get the Java installation directory from the registry and use script constants to set your environment variable:
(EDIT: thanks @TLama for fixing the code!)
[Registry] Root: HKCU; Subkey: "Environment"; ValueType:string; ValueName:"JAVA_HOME"; ValueData:"{code:GetJava32Path|6}"; Flags: preservestringtype [Code] const RegKeyJRE = 'SOFTWARE\JavaSoft\Java Runtime Environment\'; function GetJava32Path(MinVersion: string): string; var I: Integer; Path: string; Versions: TArrayOfString; begin Result := ''; if RegGetSubkeyNames(HKLM, RegKeyJRE, Versions) then for I := 0 to GetArrayLength(Versions)-1 do if (Versions[I][2] = '.') and (Versions[I][3] >= MinVersion) and RegQueryStringValue(HKLM32, RegKeyJRE + Versions[I], 'JavaHome', Path) then begin Result := Path; Exit; end; end;
(NB I am far from being an expert in Pascal-script, the code can be much better, although now it was fixed by @TLama :))
Matthieu Apr 09 '15 at 10:27 2015-04-09 10:27
source share