Tworzę instalator Inno Setup dla aplikacji jar. To, co chcę teraz zrobić, to sprawdzić, czy Java jest obecna przed przystąpieniem do instalacji. Więc ja tylko muszą mieć pewność, że użytkownicy będą w stanie uruchomić:Sprawdź, czy Java jest obecna przed instalacją
java -jar my-app.jar
Co robię teraz to:
[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;
moje pytania są następujące:
Czy sprawdzanie rejestru na tyle, aby upewnić się, że katalog domowy Java będzie w PATH? (aby móc uruchomić "java" w konsoli):
Jeśli jest zainstalowana wyższa wersja java, czy ten klucz w rejestrze istnieje, czy też będę musiał sprawdzić, czy jest dostępna wyższa wersja?
Czy ktoś ma lepszy sposób na pobranie java, niż po prostu pokazuje popup i przenosi użytkowników do strony pobierania?
Czy masz zamiar wymagać Sun Java, czy zamierzasz zezwolić na dowolną wersję (np. BEA - erm, Oracle - JRokit)? – atk
Ładne pytanie. Po prostu trzymam się Sun Java, ponieważ moje narzędzie jest oparte na oficjalnej pomocy technicznej i nie chcę mieć przyszłych problemów z powodu różnych implementacji języka Java. – Santi