【异常解决】java: 无法访问org.springframework.boot.SpringApplication的解决方案

简介: 【异常解决】java: 无法访问org.springframework.boot.SpringApplication的解决方案

一、背景描述

Spring官网:Spring | Home

通过Spring官网初始化一个新的SpringBoot项目,如下图所示。

关键信息:maven项目,Java语言,SpringBoot版本号,项目信息,打包方式,Java版本,然后点击下边最左侧的 GENERATE CTRL + 回车,即可生成一个SpringBoot项目。

下载后使用IDEA打开,将maven依赖下载好,JDK版本选择Java8(本地电脑只有一个Java1.8),没有报错,启动项目后,结果启动失败,报错信息如下:

java: 无法访问org.springframework.boot.SpringApplication
  错误的类文件: /D:/Repository/org/springframework/boot/spring-boot/3.0.5/spring-boot-3.0.5.jar!/org/springframework/boot/SpringApplication.class
    类文件具有错误的版本 61.0, 应为 52.0
    请删除该文件或确保该文件位于正确的类路径子目录中。

理论上来说,从Spring官网初始化的一个项目,没有添加任何代码,不应该报错。但是,实际上很莫名其妙的出现报错信息。

二、报错原因

报错信息里所说的类文件版本指的是java class file version,java类文件版本。其实这个该版本号与jdk版本号是存在对应关系,具体来说61.0对应jdk17,52.0对应jdk8。

完整对应关系参见:https://stackoverflow.com/questions/9170832/list-of-java-class-file-format-major-version-numbers ,访问可能会比较慢,我已经截图了,看下图即可。

出现上述错误主要是类文件版本与JDK版本号不对应导致的。解决这个问题很简单,把两者的关系对应上即可。

三、解决方案

两种方案:一是降低类文件版本号(即降低SpringBoot版本号),二是提升JDK版本号

拿我自己初始化的这个SpringBoot项目来说,我选择的SpringBoot版本3.0.5,该版本的SpringBoot所需的JDK版本是JDK17,而我本地电脑只安装了一个JDK8的运行环境,所以才会报这个错误。

从Spring官网查看SpringBoot版本号,查看地址:https://spring.io/projects/spring-boot#support ,降低版本号后项目正常启动成功。我选择的是 2.1.5.RELEASE。

完结!


相关文章
|
16天前
|
Java 编译器 数据库连接
Java——异常
在 Java 中,程序执行过程中的不正常行为被称为异常。异常分为 Error 和 Exception。Error 表示系统级错误,而 Exception 则封装程序可能出现的问题。异常包括编译时异常和运行时异常(如数组越界)。异常可用于查找 bug 信息和作为方法内部的特殊返回值。处理异常的方式有默认处理和捕获异常,后者通过 try-catch 结构实现。此外,还可以自定义异常类来更灵活地处理特定情况。
26 9
Java——异常
|
19天前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
5天前
|
传感器 监控 数据可视化
【Java】智慧工地解决方案源码和所需关键技术
智慧工地解决方案是一种新的工程全生命周期管理理念。它通过使用各种传感器、数传终端等物联网手段获取工程施工过程信息,并上传到云平台,以保障数据安全。
25 7
|
10天前
|
存储 Java 关系型数据库
java: 无法访问org.springframework.context.ConfigurableApplicationContext
`亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处,根本不懂照抄那些配置是干啥的,稀里糊涂的按照博客搭完也跑不起来,因此记录这个。` `项目背景`:公司项目当前采用http协议+shiro+mysql的登录认证方式,而现在想支持ldap协议认证登录然后能够访问自己公司的项目网站。 `举例说明`:假设我们公司有自己的门户网站,现在我们收购了一家公司,他们数据库采用ldap存储用户数据,那么为了他们账户能登陆我们公司项目所以需要集成,而不是再把他们的账户重新在mysql再创建一遍,万一人家有1W个账户呢,不累死了且也不现实啊。
28 11
|
8天前
|
安全 Java 编译器
java访问字段
java访问字段
19 6
|
6天前
|
安全 Java 编译器
java访问类字段
java访问类字段
|
6天前
|
安全 Java 开发者
Java修饰符与封装:理解访问权限、行为控制与数据隐藏的重要性
Java中的修饰符和封装概念是构建健壯、易维护和扩展的Java应用程序的基石。通过合理利用访问权限修饰符和非访问修饰符,开发者能够设计出更加安全、灵活且高效的代码结构。封装不仅是面向对象编程的核心原则之一,也是提高软件项目质量和可维护性的关键策略。
10 1
|
6天前
|
Java 编译器 索引
|
7天前
|
IDE Java 开发工具
java自定义异常20
java自定义异常20
14 3
|
7天前
|
IDE Java 开发工具
java捕获异常19
java捕获异常19
12 2
下一篇
无影云桌面