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

新手上路,请多包涵

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

当我运行 javac -version 它打印

javac 1.5.0_28

在 eclipes 中,如果我右键单击,properties->java compiler 它说我正在使用 1.5 如果我然后转到 java build path ,我有 JRE System Library [JVM 1.5.0 (MacOS X Default)] .

为什么会出现此错误,我该如何解决?

编辑

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)

原文由 dotty 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 268
2 个回答

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

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

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

原文由 Jesper 发布,翻译遵循 CC BY-SA 3.0 许可协议

我的猜测是您正在使用用 Java 1.6 构建的第 3 方库。

顺便问一下,您使用 Java 1.5 有什么原因吗? Java 1.6 已经推出很长时间了,Java 1.5 将很快不再受支持(如果还没有的话)。

原文由 gabuzo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题