返回顶部
首页 > 资讯 > 后端开发 > JAVA >【Java异常】完美解决this version of the Java Runtime only recognizes class file versions up to xx.0异常
  • 427
分享到

【Java异常】完美解决this version of the Java Runtime only recognizes class file versions up to xx.0异常

java开发语言 2023-09-01 06:09:36 427人浏览 八月长安
摘要

哈喽各位,我是小白。时隔多日我又回来啦! 最近在部署项目后,发现线上业务数据都变成了默认值0,而且这个现象,仅仅出现在当次上线后生成的数据中 于是我去扫了一眼日志,发现如下报错 Caused by

哈喽各位,我是小白。时隔多日我又回来啦!

最近在部署项目后,发现线上业务数据都变成了默认值0,而且这个现象,仅仅出现在当次上线后生成的数据中

于是我去扫了一眼日志,发现如下报错

Caused by:
java.lang.UnsupportedClassVersionError: org/eclipse/core/resources/IResource has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

翻译过来就是说类文件的编译环境是61.0,而运行环境为55.0,显然运行环境低于编译环境
在这里插入图片描述

于是当发现该问题时,我迅速排查了容器jdk版本、项目中Maven编译使用的jdk版本等,发现均为JDK11

这个时候我就很纳闷了,版本是一致的,为什么会突然报这个错误呢?

百度,Google了一遍,该用的方法都用了,可还是这个问题!

正当我百思不得其解时,我看到了报错的前半部分:

在这里插入图片描述
我项目中并未使用 org/eclipse/core/resources/IResource 类/接口,可是却报了这个类的编译错误呢?

我顺势在项目中搜了一下这个类,不搜不知道,一搜才发现果真这个类是JDK17所编译的。

在这里插入图片描述
这我就很好奇了,为什么啊,明明我的项目没有用到过JDK17的东西,可为什么它会用JDK17来编译这个文件呢?

顺着这个思路,我就去看了项目的 pom.xml 文件,这看完我才知道,原来引用这个的pom版本写了个版本区间,每次都会取最高的版本

为了验证这个想法,我又去Maven仓库搜了一下。嘿,您猜怎么着?还真是!!!

在这里插入图片描述
这哥们6月13号更新了一波版本,而在此之前我们的最后一次部署是6月5日!

哎呦这个老6,真的是服了you!

为了验证这个问题,我把该依赖的版本号做了一次指定,将代码本地编译,嘿,果然是JDK11啊

请添加图片描述
哎呦我的个乖乖,这个问题整了老半天,真是服了!

解决了,改了个pom依赖版本号,哪有什么改 标签这说,净瞎扯!

来源地址:https://blog.csdn.net/qq_44664231/article/details/131544077

--结束END--

本文标题: 【Java异常】完美解决this version of the Java Runtime only recognizes class file versions up to xx.0异常

本文链接: https://lsjlt.com/news/387667.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作