java.lang.UnsupportedClassVersionError:.class文件中的错误版本号

我在eclipes中遇到此错误java.lang.UnsupportedClassVersionError: Bad version number in .class file

当我运行javac -version会打印出来

 javac 1.5.0_28 

在eclipes中,如果我右键单击,属性 – > java编译器,它说我正在使用1.5 ,如果我然后转到java build path ,那里有JRE System Library [JVM 1.5.0 (MacOS X Default)]

为什么我会收到此错误,如何解决?

EDITS

java -version打印

 java version "1.5.0_28" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_28-b04-382-9M3326) Java HotSpot(TM) Client VM (build 1.5.0_28-157, mixed mode, sharing) 

我的应用程序中的其他库是libgdx库。

完整的错误是

 Exception in thread "main" 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:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375) 

当您尝试运行为比您拥有的Java版本更新的Java版本编译的类时,会出现此错误; 例如,如果您尝试在Java 5 JVM上使用为Java 6或更高版本编译的类。

它不一定是你自己的class级; 您可能正在使用为Java 6或更高版本构建的库。

您使用的是特定库(JAR文件)吗? 检查它们是否与Java 5兼容。 或者将Java版本升级到Java 6。

我的猜测是你使用的是使用Java 1.6构建的第三方库。

顺便问一下你有没有理由使用Java 1.5? Java 1.6已经存在很长时间了,Java 1.5将不再很快得到支持(如果还没有)。

您有一个为较新的Java而不是您正在使用的Java编译的类。

堆栈跟踪应显示麻烦类的名称。 也许这是你正在使用的图书馆?

您可能会发现正在使用的java版本不是代码所期望的副本。

例如,如果您的$ PATH(此示例在Unix上)设置为/ usr / bin :(其他目录),则在运行java时将获得/ usr / bin / java:


     $ java -version
     java版“1.5.0_18”
     Java(TM)平台,商业标准版(版本1.5.0_18-b02)
     Java HotSpot(TM)服务器VM(版本1.5.0_18-b02,混合模式)
     $哪个java
    在/ usr / bin中/ JAVA

…但你的程序需要这样的工作:


     $ /usr/local/java/jdk1.6/bin/java -version
     java版“1.6.0_14”
     Java(TM)SE运行时环境(版本1.6.0_14-b08)
     Java HotSpot(TM)服务器VM(内置14.0-b16,混合模式)

所以解决方法是在调用java之前将正确版本的java所在的目录添加到路径的开头,或者通过其绝对路径调用好的java版本。

如果无法升级JRE,则可以使用较低的java版本编译代码。

来自eclipise:

项目属性> Java编译器>编译器合规性级别> [设置为您拥有的任何JRE版本]

请参阅以下屏幕以设置JRE 1.5兼容性