Estoy creando un instalador Inno Setup para una aplicación jar. Lo que quiero hacer ahora es comprobar si java está presente antes de continuar con la instalación. Así que sólo necesito estar seguro de que los usuarios serán capaces de ejecutar:Comprobar si Java está presente antes de instalar
java -jar my-app.jar
Lo que estoy haciendo en este momento es:
[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;
Mis preguntas son:
Es revisando el registro lo suficiente como para estar seguro de que el directorio de inicio de Java estará en la RUTA? (para poder ejecutar "java" en la consola)
Si hay una versión superior de java instalada, ¿esa clave en el registro existe de todos modos o tendré que verificar si es posible una versión más alta?
¿Alguien tiene una forma mejor de descargar Java que simplemente mostrar una ventana emergente y llevar a los usuarios a la página de descarga?
¿Pretende requerir Sun Java, o tiene la intención de permitir cualquier versión (como BEA-erm, Oracle-JRokit)? – atk
Buena pregunta. Me limitaré a Sun Java ya que mi herramienta se basa en el soporte oficial y no quiero tener problemas futuros debido a las diferentes implementaciones de Java. – Santi