我正在为jar应用程序创建Inno Setup安装程序。 我现在想要做的是在继续安装之前检查java是否存在。所以我只需要确保用户将能够运行:安装前检查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,而不仅仅是显示弹出窗口并将用户带到下载页面?
您是否打算要求Sun Java,或者您是否打算允许任何版本(如BEA-erm,Oracle-JRokit)? – atk 2009-08-19 04:44:01
不错的问题。我将坚持使用Sun Java,因为我的工具基于官方支持,而且由于不同的Java实现,我不想再面对未来的问题。 – Santi 2009-08-20 13:11:44