在安装之前检查 Java 是否存在
2022-09-02 12:53:30
我正在为jar应用程序创建一个Inno Setup安装程序。我现在想做的是在继续安装之前检查java是否存在。所以我只需要确保用户能够运行:
java -jar my-app.jar
我现在做的是:
[Code]
function InitializeSetup(): Boolean;
var
ErrorCode: Integer;
JavaInstalled : Boolean;
Result1 : Boolean;
begin
JavaInstalled := RegKeyExists(HKLM,'SOFTWARE\JavaSoft\Java Runtime Environment\1.6');
if JavaInstalled then
begin
Result := true;
end else
begin
Result1 := MsgBox('This tool requires Java Runtime Environment version 1.6 or newer to run. Please download and install the JRE and run this setup again. Do you want to download it now?',
mbConfirmation, MB_YESNO) = idYes;
if Result1 = false then
begin
Result:=false;
end else
begin
Result:=false;
ShellExec('open',
'http://javadl.sun.com/webapps/download/AutoDL?BundleId=33787',
'','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;
end;
end;
end;
我的问题是:
检查注册表是否足以确保java的主目录将在PATH中?(能够在控制台中运行“java”)
如果安装了更高版本的java,注册表中的该注册表项是否存在,或者我将不得不检查每个可能的版本?
有没有人有更好的方法来下载java,而不仅仅是显示一个弹出窗口并将用户带到下载页面?