异常见闻录-Java.lang.UnsupportedClassVersionError涨知识啦

news2024/11/20 15:21:51

今天有学生说自己的Eclipse的Java代码只能在新建的项目中运行,运行导入项目中类就报错

异常信息

java.lang.UnsupportedClassVersionError: 
com/demo1/Demo1Application has been compiled by a more recent version of 
the Java Runtime (class file version 55.0), 
this version of the Java Runtime only recognizes class file versions up to 52.0

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

异常分析

ava.lang.UnsupportedClassVersion错误:
com/demo1/demo1已通过更新版本的Java Runtime(类文件版本55.0)编译,
此版本的Java Runtime只能识别52.0以下的类文件版本

通过异常代码可以看出 编译的运行环境有问题 十之八九 就是 JRE不一致导致

PS:
不同的 JDK 版本编译出的 class 文件也可能有差异,
有的高版本 JDK 能够兼容低版本的 JDK 自然没有问题,但反之就会出现问题啦!

解决方案

1、检查本机的JDK和JRE版本

W+R+CMD
java -version
javac -version

发现学生安装了多个JDK版本 并且 JDK和JRE版本并不一致 重新配置环境变量

2、检查Eclipse中默认配置的JDK版本

PS: Eclipse版本年代不同 默认的JDK版本有所区别

Window ->  Preferences Java -> compiler ->  compiler compliance level -> 下拉选中对应JDK版本

在这里插入图片描述

3、更新项目的JRE环境

右键项目 ->  Build Path ->  Configure Bulid Path -> Libraries -> 更新JRE环境

在这里插入图片描述

在这里插入图片描述

以上步骤执行完成任然无法编译类 意味着当前项目的JRE配置未改成功

此时有点手足无措的感觉 只能搬起杀手锏 检查项目中的原始文件配置信息

4、找到项目目录settings下的org.eclipse.jdt.core.prefs文件 其中包含编译配置

可以明显看出两个项目的编译版本是不一致的
在这里插入图片描述

两种方法任选

  • 拷贝攻略 org.eclipse.jdt.core.prefs文件可以从同类型的项目中直接拷贝,无需修改。
  • 手动修改成当前配置的compiler版本

虽然文件中其他配置属性不一样 但是对最终编译无影响 详细属性含意请自行百度

学生的导入项目的配置信息

eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=13
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=13
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=13

工作空间新建项目的默认配置

eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8

Eclipse中.setting目录下文件介绍


网友的解释

对于出现java.lang.UnsupportedClassVersionError错误的原因,
大都是因为我们编译java.class文件的 JDK 和我们运行java.class文件的 JDK 的版本不同而产生。
不同的 JDK 版本之间,特别是高版本 JDK 编译的java.class文件在低版本的 JDK 上运行,
更容易造成低版本的 JDK 无法识别的问题,从而报出此错误。

此外,在 Maven 项目中,也有可能出现java.lang.UnsupportedClassVersionError的错误,同样是因为版本不同而产生无法识别的错误。不过,在 Maven 项目中造成这样错误的原因可能是不同的 Maven 版本与不同的 java JDK 的版本之间产生的原因,例如,maven 3.3.1+的版本只能运行在java JDK 1.7+的版本上。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/110445.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CMake入门

1. CMake的介绍: 当多人开发同一个项目时,最终要输出一个可执行文件或者共享库(dll、so等),就可以使用cmake了 所有操作都是通过 CMakeLists.txt(严格区分大小写) 来完成的 ----> 简单 2. …

C51——超声波测距 函数封装和舵机代码结合

要注意舵机转动中 延时函数要放在哪里 #include "reg52.h" sbit D5 P3^7;// sbit D6 P3^6;// sbit Trig P1^5; sbit Echo P1^6; sbit sg90_con P1^1; int cnt; int jd; double time; void Delay10us() //11.0592MHz { unsigned ch…

操作系统管程-地址-重定位-内存管理与存储管理

管程的基本概念:为什么会出现管程?信号量机制的不足:程序编写困难、易出错解决:Brinch Hansen(1973)Boare(1974)方案:在程序设计语言中引入管程成分一种高级同步机制管程的定义:是一个特殊的模块有一个名字…

使用MAXScript脚本编写圣诞树建模插件教程

一、前言 2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 今年的圣诞节为大家分享用MAXScript脚本编写圣诞树建模插件的技术创意,喜欢的同学别忘记在下面点个赞! 二、创意名 一键圣诞树插件 三、效果展示 四、实现步骤 1.制作圣诞树的设计稿…

智能巡检系统:企业安全生产管理的智能助手

智能巡检是一种高效代替传统人工巡检的新方式,其依靠物联感知技术,通过物联网采集获取信息,自动记录巡检信息,及时发现问题,实现巡检科学化。 工业4.0带来的技术革新加速了企业的转型升级进程,传统企业的运…

F5张振伦:让应用安全、快速、可靠地交付到需要的地方丨2022首届全球数字生态大会

科技云报道原创。 日前,由杭州市人民政府和浙江省商务厅主办的“2022首届全球数字生态大会”在杭州国际博览中心成功举办。 本次大会以“新技术、新业态、新模式”为主题,邀请到国内外20余位演讲嘉宾和超300位专业观众线下参会。 与此同时,…

IB成绩换成GPA,美国大学是如何算的?

IB课程体系是全球公认的难度大、结构强的课程体系。 IB课程可以通过IB文凭课程(也称为IBDP)进行系统研究。IB课程体系是国际公认的基础文凭,世界上几乎所有大学都认可IB课程体系。这是否意味着IB在申请美国大学时会有优势? 事实上…

【vue系列-02】vue的核心属性,数据代理,事件

vue的核心属性一,vue的核心属性1,模板语法1.1,插值语法1.2,指令语法2,数据绑定2.1,单向绑定2.2,双向绑定3.mvvm模型4,数据代理4.1,数据代理的基本使用4.2,数据…

pytorch实现好莱坞明星识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦 参考文章地址: 365天深度学习训练营-第P6周:好莱坞明星识别🍖 作者:K同学啊一、前期准备 1.设置GPU import torch from torch import nn …

获取rdp保存的凭证

获取用户保存的rdp凭证 当获取到一台windows服务器,可以尝试获取本地远程连接的信息,如果用户在登入rdp时勾选了 允许为我保存凭证的选项,则在该用户本地会生成一个凭证文件,我们只需要破解该凭证文件即可获取其明文密码。 通过注…

[含文档+PPT+源码等]基于SSM框架图书借阅管理系统开发与设计

博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 [含文档PPT源码等]基于SSM框架图书借阅管理系统开发与设计 系统介绍 《基于SSM框架图书管理系统开发与设计》 该项目含有源码、配套开发软件、软件安…

元数据相关的术语,你知道几个?

元数据被认为是数据治理的基石,但关于元数据相关的概念,很多人不是那么清楚,今天就和大家详解元数据相关的术语。当然,与元数据相关的概念非常多,以下仅罗列几个常见的。 01 元数据 1.名词解释 元数据最简单的定义…

【关于时间序列的ML】项目 7 :使用机器学习进行每日出生预测

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

u盘无法识别如何修复?恢复U盘,建议尝试下这些方法

我们基本都有使用过U盘,也都遇到过U盘损坏的问题。u盘无法识别如何修复?有没有什么实用的方法呢?来看看这篇文章,简单几步,就可以修复成功。如果在操作过程中,遇到数据丢失,也有方法帮你恢复&am…

ASP.NET开发的医疗健康咨询平台源码 养生知识咨询 寻根问药平台源码 C#源码

一、源码特点: 爱心医生健康知识门户网站是一个权威的医疗科普视频、语音、知识、医疗健康问答平台。 包含所有源代码和数据库,可以直接部署到IIS中使用。 二、菜单功能 网站页面: 1、首页:包含幻灯片。 2…

MySQL面试常问问题(SQL 优化 ) —— 赶快收藏

目录 1.慢SQL如何定位呢? 2.有哪些方式优化慢SQL? 避免不必要的列 分页优化 索引优化 JOIN优化 排序优化 UNION优化 3.怎么看执行计划(explain),如何理解其中各个字段的含义? 1.慢SQL如何定位呢&a…

基于python开发的DIY宠物桌面系统(附源码)--可自定义修改

定制你的宠物桌面 最近想要做一个自己独一无二的桌面宠物,可以直接使用python来自己订制。属于一个小项目,这个教程主要包含几个步骤: 准备需要的动图素材 规划自己需要的功能 使用python的PyQt5订制功能 在这个教程中,我主要…

Apache Flink 任务 Tasks 和任务槽 Task Slots

目录 任务槽(Task Slots) 任务槽数量的设置 任务对任务槽的共享 任务槽和并行度的关系 任务槽(Task Slots) Flink 中每一个 worker(也就是 TaskManager)都是一个 JVM 进程,它可以启动多个独立的线程,来并…

【数据结构】详解队列和循环队列

目录一.队列1.队列的概念及结构2.队列的实现Queue.hQueue.c二.循环队列1.循环队列的实现2.设计循环队列解题思路代码一.队列 1.队列的概念及结构 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出…

四、网络层(六)移动IP

目录 6.1 移动IP的概念 6.2 移动IP的基本工作原理 6.2.1代理发现与注册 6.2.2固定主机向移动主机发送IP数据报 6.2.3移动主机向固定主机发送IP数据报 6.2.4同址转交地址(简单了解) 6.2.5三角形路由问题(简单了解) 6.1 移…