Problema al actualizar Java Runtime 1.7.0.x hacia 1.8.0.x

Hace ya un tiempo, he tenido que analizar un problema en el lanzamiento de unos ficheros .jar que después de actualizar la versión de Java 1.7.0.55 hacia 1.8.0.91 empezaron a fallar. El procedimiento del análisis se desarrolla con el procmon “Process Monitor” para verificar como realiza la llamada al Java.

Error: Registry key ‘Software\JavaSoft\Java Runtime Environment’\CurrentVersion’

has value ‘1.8’, but ‘1.7’ is required. Error: could not find java.dll Error: Could not find Java SE Runtime Environment.

El problema está en la versión de Java 1.8.0.x que ahora no contempla  actualizar los ficheros “java.exe javaw.exe y javaws.exe” en la carpeta c:\windows\syswow64\  como hacían sus antecesores “Java 1.6  o Java 1.7”. Entonces, si tú lanzas un programa que funcione en 32bits llamará al Java de c:\windows\syswow64\java.exe y no  al que está definido en el path del sistema.

Dos soluciones para este problema:

  • Actualizar estos archivos, pero cada vez que actualices la versión de Java tendrás que realizar la misma operación.
  • Borrarlos definitivamente y así, siempre usarás los del path del sistema.

La conclusión a la que he llegado después de tener este problema, es que Java ya no contempla que alguien pueda estar lanzando aplicaciones de 32bits. Pero si llegaron a esa conclusión los desarrolladores de Java, ¿por qué no borraron esos archivos en  c:\windows\syswow64\ ???

Comparte en las Redes Sociales