【问题标题】:Unsupported major.minor version 51.0 & 52.0不支持的 major.minor 版本 51.0 和 52.0
【发布时间】:2016-04-14 18:14:13
【问题描述】:

在构建我的应用程序时,我收到错误消息:

Unsupported major.minor version 51.0

在尝试使用以前的答案自己解决问题后,我仍然无法构建程序。我的理解是这个错误是由于不兼容的编译器合规性和运行时环境引起的。

以前的解决方案建议:

  • 升级您的 Java 运行时或
  • 如果您有源代码,请使用本地 Java 编译器(如果有的话)重新编译该类。

@Brad Parks - https://stackoverflow.com/users/26510/brad-parks

由于我无法重新编译产生错误的文件,因此我尝试将我的 JRE 从 JSK1.6 升级到 JDK1.8 - 现在会产生错误:

Unsupported major.minor version 52.0

我对 Java 还是很陌生,所以希望我可能忽略/误解了一些东西

【问题讨论】:

  • 你可能需要一个低于 1.8 的版本.. 试试 1.6
  • 你改变了你的eclipse配置了吗?也许eclipse正在使用1.8以外的其他jdk。这个链接有点旧,但可以帮助到你:stackoverflow.com/questions/24790834/…
  • 每当你得到“不支持的主要次要..;”这意味着您尝试在较低版本的 Java 中运行您的应用程序,而不是您编译它的版本。您能检查一下您使用哪个版本运行以及编译哪个版本?
  • 看来您升级或使用 JDK 版本 1.7 现在抱怨 JDK8 生成的类文件。请使用“java -version”重新检查使用的 java 版本。如果消息出现在 Eclipse 中,也许检查您的 Eclipse 项目设置。 JDK8 环境不会抱怨 52 类版本文件。
  • @JoseLuis 我的Eclipse配置目前是:JDK1.8 JRE8

标签: java eclipse


【解决方案1】:

使用javap -verbose MyClass 检查您的.class 版本,您就会知道该类是为哪个版本编译的。摘自维基百科:

Java SE 8 = 52(0x34 十六进制)

Java SE 7 = 51(0x33 十六进制)

Java SE 6.0 = 50(0x32 十六进制)

Java SE 5.0 = 49(0x31 十六进制)

JDK 1.4 = 48(0x30 十六进制)

JDK 1.3 = 47(0x2F 十六进制)

JDK 1.2 = 46(0x2E 十六进制)

JDK 1.1 = 45(0x2D 十六进制)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 2016-01-10
    • 2015-05-29
    • 1970-01-01
    相关资源
    最近更新 更多