java:无法访问 org.springframework.boot.SpringApplication 错误的类文件

问题描述 投票:0回答:8
java: cannot access org.springframework.boot.SpringApplication
  bad class file: /C:/Users/xyz/.m2/repository/org/springframework/boot/spring-boot/3.0.0-SNAPSHOT/spring-boot-3.0.0-20220910.145857-773.jar!/org/springframework/boot/SpringApplication.class
    class file has wrong version 61.0, should be 52.0
    Please remove or make sure it appears in the correct subdirectory of the classpath.
maven intellij-idea boot sprint
8个回答
18
投票

将您的 springboot 版本更改为之前的稳定版本。

之前

<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.0.0</version>
    <relativePath/> <!-- lookup parent from repository -->

之后

 <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.4</version>
    <relativePath/> <!-- lookup parent from repository -->

16
投票

原因是 Spring Boot 3 需要 java 17,如准备 Spring Boot 3.0 中所述。

类文件版本错误 61.0,应该是 52.0

参考Java类文件格式主要版本号列表?。和类似的问题类文件版本错误52.0,应该是50.0 它表明您使用的是 java 8,但类文件是为 java 17 编译的。


8
投票

如果您的计算机上安装了 java 8,并且访问 spring 初始化程序网站并通过选择 Spring boot 3.0.0 (SNAPSHOT) 并打包为 Jar 且版本为 8 创建应用程序,则生成的 zip 文件的版本将为即使您选择版本为 8,pom 上的版本也是 11。这意味着您的本地计算机具有 java 版本 8,并且生成的 zip 文件在 pom 上具有版本 11。


7
投票

我将版本从2.7.5更改为3.0.1,它遇到了这个问题。

java: cannot access org.springframework.boot.SpringApplication  bad class file

要解决此问题,spring boot 3至少需要Java 17或更高版本的Java。

我也遇到了这个问题,因为我使用的是 Java 11 所以当我在 pom.xml 中转换为 Java 17

  <properties>
    <java.version>17</java.version>
  </properties>

以及projectmodules的项目结构,然后该项目完美运行

注意: SNAPSHOT、M1、M2、M3 和 M4 版本通常正在进行中。 Spring 团队仍在研究它们,建议不要使用它们。

我希望这有帮助!如果您有任何疑问或者还有什么我可以帮助您的,请告诉我。

编码愉快! 👨u200d💻


3
投票

从3.0.0到2.7.3,我改变了。然后就一切顺利了。


0
投票

这里有一些可能对您有帮助的解决方案

  1. 将 Thymeleaf 版本从 3.0.0 更改为 3.1.0
<dependency>
            <groupId>nz.net.ultraq.thymeleaf</groupId>
            <artifactId>thymeleaf-layout-dialect</artifactId>
            <version>3.1.0</version>
</dependency>
  1. 尝试更改项目结构中的sdk
  • Ctrl + Alt + Shift + S
  • 项目设置下选择项目
  • 将您的 SDK 更改为 openjdk-17 Oracle OpenJDK 版本 17.0.4openjdk-18 Oracle OpenJDK 版本 18.0.2
  • 如果没有,请从 Oracle 网站下载,然后按 SDK: 下的 Add SDK
  • 按钮
  • 任何高于 17 的 SDK 版本都可以使用
  • 应用,然后按确定
  • 右键单击 pom.xml 文件上的任意位置并选择 Maven
  • 然后选择重新加载项目
  • 等待项目重新加载
  • 现在构建您的项目并运行它

0
投票

尝试从 pom.xml 文件更改 Spring Boot 版本。

我将版本从3.0.0更改为2.0.2.RELEASE并且工作正常。

出现此问题的原因是 Spring Boot 版本 3 需要 Java 版本 17 才能运行,而您尝试使用 Java 版本 8 运行。


0
投票

我收到此错误

java: cannot access org.springframework.boot.SpringApplication bad class file: /C:/Users/homa/.m2/repository/org/springframework/boot/spring-boot/3.1.3/spring-boot-3.1.3.jar!/org/springframework/boot/SpringApplication.class class file has wrong version 61.0, should be 55.0 Please remove or make sure it appears in the correct subdirectory of the classpath.

当我将版本 11 更改为 17 时,我的测试通过了。

<properties>
        <java.version>17</java.version>
    </properties>
© www.soinside.com 2019 - 2024. All rights reserved.