Estoy tratando de detectar si hay una JVM instalada y dónde está ubicada para poder ejecutar java.exe
.¿Cómo detectar presencia y ubicación de JVM en Windows?
Todo lo que he logrado encontrar es HKCU\Software\JavaSoft\Java Runtime Environment\<ver>
. ¿Es seguro asumir que está instalado en %PROGRAMFILES%\Java\jre<ver>
?
Estoy tratando de hacer esto en C#, pero supongo que la respuesta es bastante independiente del idioma, por lo que cualquier respuesta es apreciada.
EDIT: Ok tonta de mí, he encontrado que me How to detect whether java runtime is installed or not on a computer using c# señaló HKLM\Software\JavaSoft\Java Runtime Environment\CurrentVersion
que trabaja con HKLM\Software\JavaSoft\Java Runtime Environment\<ver>\JavaHome
. Me las arreglé para encontrar estos en su lugar debajo de HKLM\Software\Wow6432Node\JavaSoft\Java Runtime Environment
. ¿Hay alguna manera de detectar cuál de estos debo verificar sin intentar olfatear el tipo de CPU?
¿La entrada del registro contiene todas las versiones de Java? Debido a que algunas aplicaciones tienen versiones anteriores de JRE incluidas con ellas y pueden sobrescribir sus entradas de registro anteriores, lo cual es un verdadero problema. – biziclop
@biziclop Contiene todas las versiones una junto a la otra con la tecla CurrentVersion descrita anteriormente que apunta al valor predeterminado JRE –
. Es bueno saberlo, gracias. Mi observación sigue en pie, sin embargo, no confíes ciegamente en la versión actual. :) – biziclop