Recientemente, mi equipo de desarrollo se vio obligado a pasar a un entorno de desarrollo remoto donde no tenemos acceso completo a los servidores. Antes del cambio, teníamos un JAR que funcionaba bien en Java 1.7 x64 junto con JRE 7. Cuando nos mudamos al nuevo servidor, nuestro JAR se estaba ejecutando correctamente, pero luego uno de los administradores del servidor "actualizó" nuestro Java a uno más antiguo. versión y desinstalamos el que estábamos usando. No me preguntes por qué, no lo sé. Reinstalé Java 1.7 y desinstalé 1.6 junto con los JRE.
El siguiente problema ocurre en tiempo de ejecución, no hay errores de compilación:
Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.7', but '1.6' is required.
Error: could not find java.dll
Error: could not find Java SE Runtime Environment.
Ejecuté el mismo JAR en mi computadora portátil sin problemas. Tanto el servidor como mi computadora portátil tienen JDK 1.7 y JRE 7 en las respectivas variables% HOME% y PATH del sistema. Incluso reinstalé JRE 6 y lo coloqué más tarde en las variables PATH del entorno del sistema con el mismo resultado.
También cambié el registro de nuevo para mirar 1.6 y resulta en lo siguiente, que busqué y parece ser por tener varios Javas instalados (lo que lleva de nuevo a mi problema original):
Exception in thread "main" java.lang.UnsupportedClassVersionError: ... :
Unsupported major.minor version 51.0
Agradecería cualquier información que tengan, ya que he estado mirando varios foros, pero nada parece tener exactamente mi problema. Además, esto también ha sucedido en otro servidor que estamos usando. ¡Gracias!
Actualización: No hubo suerte al volver a compilar el JAR a 1.6 o 1.7 y hacer coincidir el JDK. Además, ¿por qué en el mundo una versión más nueva de Java rompería una versión compilada anterior?