2011-05-19 16 views
6
java.lang.UnsupportedClassVersionError: Bad version number in .class file 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:676) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 
at java.net.URLClassLoader.access$100(URLClassLoader.java:56) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:195) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:317) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source) 
at com.install4j.runtime.MacLauncher.main(Unknown Source) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:592) 
at apple.launcher.LaunchRunner.run(LaunchRunner.java:115) 
at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:50) 
at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52) 

No entiendo esto para nada; ¿Alguien puede explicarlo simplemente? Gracias¿Cuál es el motivo de UnsupportedClassVersionError?

+3

Reetiquetado de javascript a java. –

+2

@Rob, podrías haber arreglado el formato del código, el título y eliminar los txtisms mientras estuviste allí. :) – sarnold

+0

Significa que algo se rompió. Tal vez con más código de lo que intentas hacer, alguien podría explicar lo que sucedió. – thedaian

Respuesta

11

Este error puede ocurrir al compilar el código con una versión más reciente del JDK e intentar ejecutarlo en una versión anterior del JVM. ¿Es este tu código el que estás compilando y estás usando un IDE (como Eclipse)? Intente actualizar su JRE.

+1

use java -version y javac -version para comparar la versión de su compilador con la versión de la JVM. –

+3

@Kevin Esto es realmente un error que muchos principiantes cometen cuando comienzan a aprender Java. Como todos estuvimos allí una vez, deberíamos ser tolerantes con los errores que cometen los principiantes. –

+0

¿Cómo voy a actualizar mi JRE? – Peter

0

Está diciendo que está utilizando un archivo de clase para una versión diferente del tiempo de ejecución de java. ¿Qué programa estás instalando (noté installj en tu stacktrace)?

Intente actualizar su tiempo de ejecución de Java.

+0

Estoy tratando de instalar un programa llamado marvin sketch para mi orgo lab, pensé que tenía que cambiar mi java, así que lo hice, pero ahora no sé cómo solucionarlo – Peter

+0

¿Qué quiso decir al cambiar su java? ¿Hiciste algo en tu Java antes de ejecutar el programa de instalación? –

+1

Sí, fui aquí http://www.oracle.com/technetwork/java/javase/downloads/index.html y descargué uno de los programas pero no sé cuál soy tan confuso :( – Peter

1

Significa que su compilador estaba produciendo algo dirigido a una versión de Java superior a la JVM que está intentando ejecutar.

por ejemplo compilado para Java 6 y se ejecuta con Java 5.

Solución 1: actualizar el (escriba java -version a ver lo que tienes) JVM

Solución 2: apuntar a una versión inferior (en Eclipse configuración del compilador java, por ejemplo)

1

JAVA_HOME se debe definir con la versión java que sea igual a la que utilizó para la compilación.

0

Recibí este error cuando instalé JRE 1.8 y traté de ejecutar Hello World de GAE application en Eclipse Kepler. Esta es la solución:

Instalé Java 8 support for Kepler de Eclipse Marketplace. Luego resolví mi problema yendo a Eclipse -> clic derecho en el archivo del proyecto ->Properties ->Java Build Path, eliminé JRE System Library 1.6, hice clic en Add Library ->JRE System Library ->Installed JRE's. Luego hice clic en Search, automáticamente encontré la versión 1.8 y luego volví a la vista previa, seleccioné 1.8 y ahora todo funciona bien.

Cuestiones relacionadas