我正在爲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