Java » java.lang.UnsupportedClassVersionError
Hará unos días me ha tocado modificar un código Java de hace unos años. Cuando uno todavía era programador (ahora la programación es un hobby para mí). La cuestión es que edité el código sobre Eclipse, lo modifiqué y recompile. Todo ello con Java SE 5. Hasta aquí ningún problema.
Lo que no podía imaginar es que la máquina virtual en que se estaba ejecutando en producción era todavía un Java SE 1.3 (o alguno de sus derivados). Es por ello que cuando mi código llegó a ejecutarse devolvió una java.lang.UnsupportedClassVersionError.
Además la información adicional que nos devolvió fue "Unsupported major.minor version 49.0".
Y es que desde Java SE 1.2 se dispone de la excepción java.lang.UnsupportedClassVersionError (puedes leer la información del API sobre java.lang.UnsupportedClassVersionError). La cual nos avisa que la JVM intenta leer un fichero class cuya version (mayor o minor) no está soportada.
java.lang.UnsupportedClassVersionError, hemos compilado con una versión de Java mayor a la versión que esta ejecutando en la JVM.
Si vemos la información adicional (la que me devolvió) lo que nos dice es que no se soporta código compilado con la máquina virtual 49.0, la cual corresponde con Java SE 5, el código 48.0 correspondía a Java SE 1.4,...
Si quieres saber que versión de máquina virtual estás ejecutando puede poner lo siguiente en la línea de comandos:
java -version
Artículos relacionados:






Octubre 20, 2009 #
Hola.
Antes de nada agradecer vuestra ayuda.
Tambien he tenido el mismo problema. Tengo myEclipse configurado con la version 1.5 de java mientras que por otro lado tengo instaladas varias versiones de java en windows. Al hacer un war de mi proyecto con eclipse se generaba con java 1.5. Al hacer mas tarde un wsdeploy este me daba el famoso error que se comenta en este blog. Se debe a que la versión con la que se genera el war con eclipse no coincide con la versión que apuntaban las variables de entorno.
La solución ha sido configurar las variables de entorno de windows para la versión de java correcta. (MiPc->Propiedades->Propiedades Avanzadas->Variables de entorno). Dejo una url util: http://www.it.uc3m.es/tlp/guia/guiaWinXP.html
Ojo tambien a si teneis varios servidores instalados, ya que a lo mejor las variables de entorno están apuntado a un servidor incorrecto y por lo tanto a un wsdeploy incorrecto.
Saludos a todos
Junio 26, 2010 #
Hola buen dia, gracias por la ayuda! a mi tambien me ha lanzado la excepcion java.lang.UnsupportedClassVersionError al tratar de ejecutar un jar (java -jar programa.jar) construido en la misma maquina.
Lo que pasaba en mi maquina era que otro programa (Oracle creo
) habia instalado una version del JRE mas vieja y habia agregado la ruta a esa maquina virtual al PATH de mi sistema, antes que la ruta del JRE de mi JDK, por lo que la primera maquina virtual que encontraba era la del otro programa (la vieja). Yo modifiqué el PATH agregando la ruta al JRE que deseaba ejecutar de primera y todo bien con mi jar. ahora espero que el otro programa corra bien xD