• 有关java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0


    时常会遇到java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0这样的异常,现在都知道是jdk版本的问题,高版本跑在低版本上就出现这样的问题,今天搜了下,总结下这个东西

    (1)随便打开个class文件

    minor_version 为 0x0000,major_version 为 0x0033,十进制分别是0和51,合起来major.minor 就是 51.0 了

    对于 JVM 来说,版本号确定了特定的 class 文件格式,通常只有给定主版本号和一系列次版本号后,JVM 才能够读取 class 文件。如果 class 文件的版本号超出了 JVM 所能处理的有效范围,JVM 将不会处理该 class 文件

    (2)也可以使用javap -verbose ***获取某个class文件的以上信息

    (3)最后列出从 JDK 1.1 到 JDK 1.7 编译器编译出的 class 的默认 minor.major version 

    JDK 编译器版本 target 参数 十六进制 minor.major 十进制 minor.major
    jdk1.1.8 不能带 target 参数 00 03   00 2D 45.3
    jdk1.2.2 不带(默认为 -target 1.1) 00 03   00 2D 45.3
    jdk1.2.2 -target 1.2 00 00   00 2E 46.0
    jdk1.3.1_19 不带(默认为 -target 1.1) 00 03   00 2D 45.3
    jdk1.3.1_19 -target 1.3 00 00   00 2F 47.0
    j2sdk1.4.2_10 不带(默认为 -target 1.2) 00 00   00 2E 46.0
    j2sdk1.4.2_10 -target 1.4 00 00   00 30 48.0
    jdk1.5.0_11 不带(默认为 -target 1.5) 00 00   00 31 49.0
    jdk1.5.0_11 -target 1.4 -source 1.4 00 00   00 30 48.0
    jdk1.6.0_01 不带(默认为 -target 1.6) 00 00   00 32 50.0
    jdk1.6.0_01 -target 1.5 00 00   00 31 49.0
    jdk1.6.0_01 -target 1.4 -source 1.4 00 00   00 30 48.0
    jdk1.7.0 不带(默认为 -target 1.6) 00 00   00 32 50.0
    jdk1.7.0 -target 1.7 00 00   00 33 51.0
    jdk1.7.0 -target 1.4 -source 1.4 00 00   00 30 48.0
    Apache Harmony 5.0M3 不带(默认为 -target 1.2) 00 00   00 2E 46.0
    Apache Harmony 5.0M3 -target 1.4 00 00   00 30 48.0

    下面的文章写的极详细

    参考文章:

    java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0的错误

  • 相关阅读:
    软件工程之项目管理核心框架
    JPA @Column
    centos 安装 nodejs vue 工具链.
    c语言 打印二进制数
    Python import 导入指定目录的某块
    最近的一点思考,关于高手/大师/学霸
    同步与非同步,阻塞与非阻塞。
    Spring MVC 配置
    Java Web框架的基本组件
    add函数
  • 原文地址:https://www.cnblogs.com/yhzh/p/5113601.html
Copyright © 2020-2023  润新知