我正在为 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?