【问题标题】:servlet java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0servlet java.lang.UnsupportedClassVersionError:不支持的major.minor 51.0版
【发布时间】:2012-10-10 18:33:27
【问题描述】:

我有一个我一直在从事的 Google App Engine 项目。一切都很好,直到我更新了我的 jdk7。现在,当我部署我的应用程序时,我收到了 servlet java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0 异常。是否有一些研究表明此异常是由运行较旧 jvm 的较新 jdk 编译的字节码引起的。因此,我寻找了 jdk 的最旧版本,我可以找到 jdk6u36 并使用它部署我的项目并且仍然拥有该项目(做了一些其他令人尴尬的事情,看看究竟是什么导致了这个问题,比如删除我的所有类文件并测试他们一个一个并得到所有问题相同的问题)。我真的需要帮助来解决这个问题。

【问题讨论】:

标签: java web-applications


【解决方案1】:

你们有没有说过我在较新的 JDK 上编译并在较旧的 JRE 上部署。因此,为了解决这个问题,我将项目的编译器更改为 jdk 6,方法是右键单击 project->properties->java 编译器。我还更改了 JAVA_HOME 环境变量以指向 JDK6 的位置,这解决了我的问题。非常感谢

【讨论】:

    【解决方案2】:

    是否有一些研究表明此异常是由运行较旧 jvm 的较新 jdk 编译的字节码引起的。

    没错……

    所以我寻找了我能找到 jdk6u36 的最旧版本的 jdk,并使用它部署了我的项目,并且仍然拥有该项目......

    显然这行不通!您在较新的 JDK 上进行编译并在较旧的 JDK/JRE 上进行部署。您需要在较旧的 JDK 上编译。这就是你的研究刚刚告诉你的......

    【讨论】:

    • 但是当我下载 jdk6 并将其添加到我的构建路径时。我假设eclipse在将项目部署到应用程序引擎时重新编译了项目,这不应该解决我的问题吗?
    猜你喜欢
    • 2014-03-17
    • 2016-01-10
    • 2012-06-29
    • 2013-02-02
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多