class file has wrong version 55.0, should be 52.0

前言

  • 今早更新代码,准备编译启动启动时,项目报class file has wrong version 55.0, should be 52.0异常,如下图所示。
    在这里插入图片描述

分析

  • 错误提示:类文件有错误的版本 55.0,应该是 52.0。这里的55和52是主版本(Major Version),主版本(Major Version)和JDK版本的对应关系如下表所示。
主版本(Major Version)对应JDK版本
52JDK 8
53JDK 9
54JDK 10
55JDK 11

确认Jar的主版本

  • 我们可以把Jar包用解压软件,得到class文件。使用javap -v xxx翻译生成汇编代码输出行号、局部变量表信息、常量池、版本号等信息。
    在这里插入图片描述
  • 或者使用HexView也能查看主版本号,如下图所示。
    在这里插入图片描述

0x0037转为10进制就是55

确认问题

  • 我们看到主版本是55,对应上表就是JDK 11,这样局势就明朗了。

  • 提示上说这个class(或者说这个Jar)用的是JDK 11编译出来的,而我本地的是JDK 8,所以低版本没能力兼容高版本的东西导致了报错。

解决方案

  • 第一种:不要使用这个Jar或者里面的任何类。
  • 第二种:升级自己的JDK。
  • 第三种:有条件的可以把源码下载下来,用自己本地JDK,编译出来Jar,这样就和自己本来JDK兼容了。

posted on   愤怒的苹果ext  阅读(4421)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示