【问题标题】:Can't fix Unsupported major.minor version 52.0 even after fixing compatibility即使修复了兼容性,也无法修复 Unsupported major.minor 版本 52.0
【发布时间】:2014-09-07 13:47:41
【问题描述】:

当我尝试在另一台机器上运行我的 java .jar 时出现错误

不支持的major.minor 52.0版

我使用 jdk 1.6 编译了我的程序,并且我的机器(单独的一台)安装了 java 7。

这是我的机器运行的java版本:

这是我的 IDE(Eclipse Lunar)中的设置

为什么我仍然收到不受支持的错误?

我确实检查了我的运行配置并将其更改为 jre6,但是当我这样做时,我什至无法在 IDE 中运行我的程序。

注意:如果 jdk 7 不可行,我希望我的程序可以使用 jdk 6。

我的班级路径:

【问题讨论】:

  • "我使用 jdk 1.6 编译了我的程序" 不,你没有。您使用的是 1.8。
  • 我更改了 jre 版本并尝试构建,但它甚至无法在我的 IDE 中运行。你能帮我用 1.6 编译吗?
  • 更改编译器选项以指定目标版本 1.6。重新编译一切。
  • 您的项目之外可能还有其他尚未重新编译的类。
  • 项目是否也指定了正确的编译器合规性(如果它指定了一个)?

标签: java eclipse


【解决方案1】:

我同意 chrylis 的观点:您认为您更改了项目的合规性设置,但可能您没有。

右键单击您的项目并:

  • Java / 构建路径:转到“库”选项卡并确保自己确实在使用 jre6
  • Java / 编译器:确保自己选择了 1.6 合规性

顺便说一句,您可以“告诉”eclipse jre8 是 1.6 合规性,单击 Window/Preferences/Java/Installed JREs/Execution Environment 并在左侧面板中选择 Execution Environments, JavaSE-1.6 和 Compatible JRE's panel, jre8

【讨论】:

  • 而且,可以肯定的是,您可以使用 javap 转储使用设置编译的 .class 文件。
【解决方案2】:

您好,我发现这个link 帮助我理解了这个问题。希望它是有用的。 目前发布的版本是

  • Java SE 8 = 52,
  • Java SE 7 = 51,
  • Java SE 6.0 = 50,
  • Java SE 5.0 = 49,
  • JDK 1.4 = 48,
  • JDK 1.3 = 47,
  • JDK 1.2 = 46,
  • JDK 1.1 = 45

从那个数据来看,它只是意味着

许多人认为,如果 Java 向后兼容,为什么会出现版本不匹配错误。好吧,Java 确实是向后兼容的,这意味着您可以将在较低版本(java 6)中编译的 Java 类文件或 Java 二进制文件(JAR 文件)运行到更高版本,例如Java 8,但这并不意味着您可以将使用 Java 7 编译的类运行到 Java 5 中,为什么?因为高版本通常具有低版本不支持的功能。

有时您的机器上可能安装了多个版本的 Java。确保您正在运行的应用程序指向正确的或可用的最高版本。

【讨论】:

    【解决方案3】:

    我在 Android Studio 2.2 上进行开发时遇到了类似的问题。

    我的机器配置 -

    1. JDK 版本 1.7.0_79 已安装
    2. JDK 版本 1.8.0_101 已安装
    3. 环境变量包含:JAVA_HOME = 1.7.0_79 JDK 路径,同样添加到路径变量中
    4. 项目 SDK 位置 = C:\Program Files\Java\jdk1.8.0_101

    然后我进行了以下更改 - 1.卸载JDK 1.7.0_79 2.更新JAVA_HOME = 1.8.0_101 JDK路径(类似于SDK位置)

    现在我能够成功编译和运行我的应用程序,不再出现 Unsupported major.minor version 52.0 错误

    【讨论】:

      【解决方案4】:

      如果您尝试从命令提示符执行您的程序/应用程序。只需确保在更改 JAVA_HOME 变量后重新启动 cmd。非常简单,但有时很容易错过。

      【讨论】:

        【解决方案5】:

        导致此问题的几种可能。根本原因是项目和IDE之间的编译器版本不匹配。 windows环境可以参考blog进行详细排查。

        【讨论】:

          【解决方案6】:

          当您使用较高版本的 Java 编译并尝试使用较低版本的 JRE 运行时会发生该错误。即使版本不匹配,您也会遇到此问题

          我在使用 JDK 1.8.0_31 编译时遇到问题,它使用 jdk1.8.0_25 运行并显示相同的错误。一旦目标更新到更高版本或使用相同或更低版本编译将解决问题

          【讨论】:

            【解决方案7】:

            你在使用retrolambda吗?如果是这样,只需JAVA_HOME=$JAVA8_HOME

            来源:https://github.com/evant/gradle-retrolambda/issues/74

            【讨论】:

              【解决方案8】:

              这是一个愚蠢的问题,只要确保 jdk 和 jre 是最新版本。这个问题主要是因为java(jre)自动更新,jdk不支持那个版本,所以会出问题。

              【讨论】:

                【解决方案9】:

                右键单击项目, 属性 ---> Java 编译器(在同一页面上将编译器合规级别更改为 1.6(或)1.7(或)1.8(与您的 JAVA_HOME 匹配)

                【讨论】:

                  【解决方案10】:

                  首先感谢您提供以上所有答案。 但是,我每天都使用 Intellij Idea。所以,我希望我的回答对其他人有所帮助。

                  运行您喜欢的终端或命令行。然后通过运行命令检查您的 java 版本

                  java -version
                  

                  然后在 Intellij 中按

                  Ctrl+Alt+Shift+S

                  Project Settings
                  

                  标签下的

                  Project SDK
                  

                  选择合适的java版本。最后,重新运行您的代码。

                  【讨论】:

                    【解决方案11】:

                    我也有同样的问题。我通过更新我的系统 jdk 解决了这个问题。 以前我用的是jdk7.0,现在更新到jdk8.0。 找到下面的链接以下载带有新版本的更新 jdk。 它可以帮助我解决我的问题。

                    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

                    【讨论】:

                      【解决方案12】:

                      我还必须将我使用的 Tomcat 版本从 Tomcat 7 更新到 Tomcat 8。

                      【讨论】:

                        【解决方案13】:

                        我有同样的问题。结果我使用了一些用 1.8 编译的外部 jars (apache poi 4.1.2)。通过将 Java Build Path JRE 更改为 1.8 解决了这个问题。

                        【讨论】:

                          猜你喜欢
                          • 2018-03-25
                          • 2019-05-20
                          • 2017-06-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2016-07-04
                          • 2018-10-14
                          • 1970-01-01
                          相关资源
                          最近更新 更多