8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何修复 java.lang.UnsupportedClassVersionError:不支持 major.minor 版本

CraftyB 2月前

450 0

我正在尝试使用 Notepad++ 作为我的一体化工具编辑、运行、编译等。我已经安装了 JRE,并且已经将路径变量设置为 .../bin 目录。当我在 Notepad 中运行我的 \'Hello world\' 时...

我正在尝试使用 Notepad++ 作为我的一体化工具编辑、运行、编译等。

我已经 JRE ,并且已经设置了 .../bin 目录的路径变量。

当我在 Notepad++ 中运行“Hello world”时,收到以下消息:

java.lang.UnsupportedClassVersionError: test_hello_world :
 Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
       .........................................

我认为这里的问题是关于版本;Java 的某些版本可能太旧或太新。

  1. 我如何解决它?
  2. 我应该安装 JDK,并将路径变量设置为 JDK 而不是 JRE 吗?
  3. JRE和JDK中的变量 PATH 有什么区别
帖子版权声明 1、本帖标题:如何修复 java.lang.UnsupportedClassVersionError:不支持 major.minor 版本
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由CraftyB在本站《eclipse》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 你也安装了 jdk 吗?jre 是 Java 运行时环境,要创建 Java 应用程序,你也需要 jdk

  • 是的,我安装了,现在我的路径变量指向了 jdk 所在的位置。但我仍然有这个“不支持的次要版本 51.0”错误,你认为我应该安装旧版本的 jdk 吗?我使用的是 jdk 1.7.0

  • 这个问题发生在我使用 Mac OS X 时,由于最近 OSX 上 Apple java 6 和 Oracle java 7 的情况很奇怪,导致出现问题。简短版本:使用 JDK7 编译,使用 JDK6 运行,得到这个。

  • 显示的版本号描述了类文件兼容的 JRE 版本。

    报告的主要数字是:

    Java SE 22 = 66,
    Java SE 21 = 65,
    Java SE 20 = 64,
    Java SE 19 = 63,
    Java SE 18 = 62,
    Java SE 17 = 61,
    Java SE 16 = 60, 
    Java SE 15 = 59,
    Java SE 14 = 58,
    Java SE 13 = 57,
    Java SE 12 = 56,
    Java SE 11 = 55,
    Java SE 10 = 54,
    Java SE 9 = 53,
    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 JRE 运行 Java 代码,或者向 Java 编译器指定目标参数以指示编译器创建与早期 Java 版本兼容的代码。

    例如,为了生成与 Java 1.4 兼容的类文件,使用以下命令行:

    javac -target 1.4 HelloWorld.java
    

    使用较新版本的 Java 编译器时,您可能会收到有关未设置引导类路径的警告。有关此错误的更多信息,请参阅博客文章“ 设置没有 bootclasspath 的旧源时出现新的 javac 警告” .

  • \'显示的版本号描述了使用 Java 编译代码的版本。\' 不,它不是。它显示了类文件兼容的 JRE 版本。使用交叉编译选项,您可以使用 1.7 JDK 编译类版本为 1.1(到 1.7)的代码。

  • 这是直接从 Eclipse 编译到以前版本的一个很好的解决方案:.com/a/16345710/2091700

  • 在 eclipse 项目=>属性=>java 编译器中,将“编译器合规级别”设置为与您的 jre 或 jdk 对应的版本。对于我来说,jre 1.6 的版本是 1.6

  • 当编译器源设置与当前编译的 JRE/JDK 不一致时,可能会发生这种情况。例如,我从 eclipse .settings 文件夹中找到了以下值:org.eclipse.jdt.core.compiler.compliance=1.7、org.eclipse.jdt.core.compiler.source=1.7、org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7。我的编译器是 1.6.0_32。将值更改为 1.6 后,问题得到解决。问题源于我从使用 JDK 1.7 的其他工作区复制项目后 :(

  • SAE 2月前 0 只看Ta
    引用 10

    在 eclipse 上,右键单击项目 -> 单击属性 -> 单击左侧面板上的 Java 构建路径 -> 单击库选项卡 -> 将“JRE 系统库”更改为正确的版本

  • java.lang.UnsupportedClassVersionError 发生这种情况的原因是编译时 JDK 较高,而运行时 JDK 较低。

  • Seow 2月前 0 只看Ta
    引用 12

    项目 -> 属性 -> Java 编译器启用项目特定设置。然后选择编译器合规级别为 1.7、1.6 或 1.5,构建并测试您的应用程序。

  • 当我转到 Java 7 时,Eclipse 不知为何一直尝试在 Java 6 中运行...不知道为什么。卸载旧的 JDK 对我来说解决了问题。

  • @ezdazuzena 使用 sudo update-alternatives --config java 来执行此操作。

  • 在 Eclipse 中,我只需进入菜单命令 窗口 -> 首选项 -> Java -> 编译器 ,然后将“编译器合规级别”设置为 1.6。

  • 在 eclipse 中,有时项目 facets 也需要更改为适当的 java 版本。

  • 谢谢。值得注意的是,设置 Eclipse 的默认执行环境(构建路径上的 JRE)是一个单独的设置。我设置了 JRE,但没有设置编译器合规级别;这解决了这个问题。

  • 别担心,我已经解决了。

    其实很简单——您需要安装相同版本的 JRE/JDK。

    JRE 6 -> JDK 6

    JRE 7 -> JDK 7

    等等。

  • 此错误意味着您正在尝试加载使用比您已安装的 Java 版本更新的 Java 版本编译的 Java \'class\' 文件。

    例如,您的 .class 文件可能已针对 JDK 7 进行编译,但您尝试使用 JDK 6 运行它。

    因此解决方案是:

    • 升级 Java 运行时或
    • p3

      p4

    对于开发人员来说,如果另一个开发人员签入 .class 文件并且他们拥有比您更新的 Java 版本,就会发生这种情况!

  • 您尝试使用不支持代码编译版本的 Java 版本来运行程序。 因此,基本上,您必须使用较高版本编译代码,然后尝试使用较低版本来运行它。

    正如你得到

    Unsupported major.minor version 51.0
    

    版本 51.0 对应于 J2SE 7, 您很可能已经在 J​​ava 7 中编译了代码,并尝试使用较低版本运行它。检查 java -version 显示的内容。它应该是 Java 7 版本。如果不是,请在 PATH/JAVA_HOME 中进行适当的更改。或者,您可以使用您尝试运行代码的相同版本进行编译。如果配置令人困惑,您可以始终提供绝对路径 /home/user/jdk1.7.0_11/bin/javac /home/user/jdk1.7.0_11/bin/java .

返回
作者最近主题: