2012-01-11 12 views
17

Necesito determinar si un sistema en particular tiene Java de 32 bits instalado. Estoy haciendo una consulta remota que solo me da acceso al sistema de archivos y al registro, por lo que no puedo intentar ejecutar java.exe ni ejecutar ningún código Java.¿Cómo puedo detectar si Java de 32 bits está instalado en Windows x64, solo mirando el sistema de archivos y el registro?

También quiero asegurarme de detectar tanto IBM como Sun Java, así como cualquier otra distribución, que parezca poner cosas en diferentes lugares en el sistema de archivos y en el registro.

Lo mejor que he encontrado es buscar C: \ Windows \ SysWOW64 \ java.exe. ¿Es esta una manera confiable de probar la presencia de Java de 32 bits, o hay ciertas versiones que no pondrán java.exe en esa carpeta?

Actualización: Todavía estoy buscando una respuesta más robusta a esto. Para que quede claro, no tengo acceso a un símbolo del sistema. Además, deseo detectar Java sin importar quién es el editor, qué número de versión está instalado y sin importar en qué camino el usuario optó por instalarlo.

C: \ Windows \ SysWOW64 \ java.exe parece ajustarse a estos requisitos, pero me encantaría la confirmación de alguien con más conocimiento de que cada instalador de Java pondrá ese ejecutable allí.

+0

+1 a su pregunta. En mi caso, estoy trabajando con Advanced Installer y NECESITO saber qué versión de Java (x86/x64) está instalada, verificando los registros de Windows ... – mthama

+0

Aquí también: https://stackoverflow.com/a/ 2062263/632951 – Pacerier

Respuesta

0

He intentado tanto las de 32 bits y 64 bits instaladores de Oracle y Java de IBM en Windows, y la presencia de C: \ Windows \ SysWOW64 \ java.exe parece ser una forma confiable de determinar que Java de 32 bits está disponible. No he probado versiones anteriores de estos instaladores, pero al menos parece que debería ser una forma confiable de probar, para las versiones más recientes de Java.

1

Si no es Java de Oracle, es posible que no pueda saberlo. Cuando instalo Oracle Java de 64 bits, los archivos van a C: \ Program Files \ Java, pero cuando instalo una versión de 32 bits, en su lugar se convierten en C: \ Program Files (x86) \ Java. Por supuesto, la persona que instaló Java podría haber anulado esos valores predeterminados.

9

¿Tiene acceso al símbolo del sistema?

Método 1: Símbolo del sistema de

Los detalles de Java instaladas en el sistema se puede determinar mediante la ejecución del siguiente comando java -version

Método 2: Estructura de carpetas

En caso de que no tenga acceso al símbolo del sistema, entonces determine la carpeta donde está Java.

32 bits: C:\Program Files (x86)\Java\jdk1.6.0_30

64 bits: C:\Program Files\Java\jdk1.6.0_25

Sin embargo, durante la instalación, es posible que el usuario puede cambiar la carpeta de instalación.

Método 3: Registro

También puede ver la versión instalada en el editor del registro.

  1. Ir al Editor del Registro de

  2. Editar -> Buscar

  3. Búsqueda de Java. Obtendrá las entradas de registro para Java.

  4. En la entrada con el nombre: DisplayName & DisplayVersion, la versión de Java instalada aparece

+0

No tengo acceso al símbolo del sistema. También me preocupa que esas rutas tengan números de versión y el hecho de que un usuario podría cambiar esa ruta en el momento de la instalación. –

+1

También puede ver la versión instalada en el editor de registro. – Kakarot

+0

Parece que no puedo encontrar las entradas de registro a las que se refiere. ¿Dónde están en el registro? –

3

Compruebe esta clave para máquinas Windows de 32 bits y 64 bits.

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment 

y esto para Windows 64 bits con 32 Bits JRE.

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment 

Esto funcionará para el JRE de oracle-sun.

21

Esto parece proporcionar la información en Windows:

1.) Abra una ventana de símbolo del sistema.

2.) Introduzca: java -XshowSettings: todos y presione ENTER.

3.) Se mostrará una gran cantidad de información en la ventana de comandos. Desplácese hacia arriba hasta encontrar la cadena: sun.arch.data.model.

4.) Si dice sun.arch.data.model = 32, su VM es de 32 bits. Si dice sun.arch.data.model = 64, su máquina virtual es de 64 bits.

Cuestiones relacionadas