Я создаю установщик Inno Setup для приложения jar. Сейчас я хочу проверить, присутствует ли 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 home dir будет в PATH? (чтобы иметь возможность запускать "java" в консоли)
-
Если установлена более высокая версия java, будет ли такой ключ в реестре в любом случае, или мне нужно будет проверить, доступна ли каждая более высокая версия?
-
Есть ли у кого-нибудь лучший способ загрузить java, чем просто показывать всплывающее окно и переносить пользователей на страницу загрузки?