java.lang.UnsupportedClassVersionError

28/Ene/2007 Java , 23 Comentarios

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

Vídeos sobre Java


23 comentarios en “java.lang.UnsupportedClassVersionError”

Víctor Cuervo

Gutenberg Alexis

5 años menos un día después de la publicación de este post… debo decir… GRACIAS!!

Víctor Cuervo

samuel

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 :P) 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

Víctor Cuervo

Sergio

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

Víctor Cuervo

Grego

Hola
cuando compilo sobre win 2003 compilar bien, pero en Vista
tengo el mismo error.

java.lang.UnsupportedClassVersionError.

utilizo la version jdk1.5.0_11, pero consulto la version sale:

C:\Documents and Settings\Administrador>java -version
java version “1.6.0_11”
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)

Víctor Cuervo

Kandy

He hecho lo ke pone Adan, y en el eclipse le he configurado para que compile con la versión 1.4.
Todo perfecto, gracias a todos.

Víctor Cuervo

txk

gracias ! si me ayudo !

Víctor Cuervo

yovanny

Hola tengo un problema super raro para mi, te agradeceria que me ayudaras. Mira e realizado un programa en Eclipse bajo java, ma maquina virtual es jre1.6.0_02 lo cual cree un jar y corre perfectamente e incluso con un servidor acoplado, pero el problema es que realize el programa en mi maquina en mi pc, pero al correr el jar en otras maquinas, no fuciona la conexion ya que el jar se ejecuta normalmente pero no puedo comunicarme con el servidor, ahora, e realizado el jar en las otras maquinas pero tampoco funciona aunque se ejecuta normalmente el jar no hay conexion con el servidor, pero si ejecuto el jar que realice en las otras maquinas en mi maquina corre perfectamente y se ejecuta normalmente, Lo que te puedo decir es que mi pc esta en windows vista los demas pcs estas en xp pero no creo ese sea el error Estoy trabado en ese error, por favor ayudame te agradeceria mil veces……

Gracias………….

Víctor Cuervo

yovanny

Hola,

Tengo

Víctor Cuervo

TOTO

en IDE Eclipse se puede cambiar la versión del compilador:
WINDOW –> PREFERENCES –> COMPILER

yo lo tenia en 1.6 , con jdk 1.42 y me daba ese error; logré cambiarlo de esta manera

Víctor Cuervo

jose

gracias por la ayuda..

Víctor Cuervo

F

Hola, tengo un problema intentando crear un bean de sesion con el deploytool. Creo el archivo .ear y al intentar crear en Enterprise Bean (File > New > Enterprise Bean) y agregar las clases por el Edit Contents me sale el siguiente error: The Class (>) could not be loaded:
please consult online help for assistance in setting up the class root directory and choosing class files.

Me perdonan si el error no esta relacionado con el tema, pero la verdad creo que si tiene algo que ver.

Le agradezco a la persona que me puedea ayudar con este problema.

Víctor Cuervo

Silvia

Hola!!!

Ante todo gracias, ver aquí a qué se debía el error me ha ayudado a solucionarlo. Lo que me pasaba era que la máquina donde tenía que correr iba en JDK 1.4 y yo usaba 1.5.

Estoy usando JDeveloper, pero creo que en Eclipse (y no sé si NetBeans) es parecido. Aunque en línea de comandos, al ejecutar java -version te dé una versión, la que puedes tener en tu proyecto (dentro del entorno de desarrollo) puede ser distinta. Para cambiar la versión del proyecto en el entorno de desarrollo hay que entrar en las propiedades del proyecto, en el apartado de librerías (así es como aparece en JDeveloper, pero también me suena para los otros) y escoger la oportuna. Yo lo he solucionado así.

Un saludo,
Silvia.

Víctor Cuervo

tyki

El mismo problema version eclipse instalada 5.0 y el proyecto hecho
en versión anterior 1.4
Error :Unsupported major.minor version 49.0)
solución : sobre el proyecto> properties > Java compiler >configurate workspace setting>compiler level :1.4

Víctor Cuervo

Ryoga2k

Puedes instalar la última versión de la JVM, o bien compilar tu proyecto para ejecutar en una versión más antigua (lo tendrás que indicar en las opciones del compilador de java que utilices para tu proyecto).

Víctor Cuervo

marcelito

pero como soluciono el problema del error
java.lang.UnsupportedClassVersionError

porfis porfis help !!

Víctor Cuervo

rojo

vate al carajo super ñoño

Víctor Cuervo

fatmike

hola,

java.lang es un package en el entorno java…
Mirando un poquito el javadoc del este package (http://java.sun.com/j2se/1.3/docs/api/java/lang/package-summary.html)
podras ver una pequeña definicion :

Provides classes that are fundamental to the design of the Java programming language.

En efecto, java.lang contiene classes findamentales para el desarrollo de aplicaciones en java… Obkect, Class, Byte …

Adan, buen apunte, al grano…

Saludos…

Víctor Cuervo

lineadecodigo

Hola Hector,

Me alegro mucho que te haya servidor de algo. Me hace muy feliz.

Víctor Cuervo

Hector Fabio Tobon R

Muchas Gracias por todo… actualmente soy estudiante de programación en java y c# y me ha servido bastante lo que me dijiste puesto que en el compu de mi casa tengo la version 1.6 mientras que en la universidad se encuentra la 1.5 y no encontraba explicación del por qué no me corrían mis jars… lol..

Víctor Cuervo

pablo enrique

que demonios es el java.lang, tengo que exponer clase de eso y no encuentro definiciones, alguien me puede ayudar?????

Víctor Cuervo

Adan

probad en windows->Preferences->compiler->compiler compliance level. Y ahi poned la que os interese

Víctor Cuervo

Álvaro

Hola, ya conseguí arregarlo, pero a través del tag javac de Ant. A los que no usen Ant… pues buscaos la vida!! XD Es broma, no encontré otro modo de hacerlo.

Víctor Cuervo

Alvaro

¿Y qué pasa si quiero cambiar la versión de java a una más antigua? Si uso un IDE como el Eclipse, puedo compilar mi proyecto como Run.. y elegir el jre que me interesa. Sin embargo no me ha funcionado esto. Al escribir java -version me sigue devolviendo jre1.5. y al compilar el proyecto con Eclipse eligiendo un jre1.4 que tengo instalado me sigue dando ese mismo error.

¿Quizás debo cambiar algo en el PATH?

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*