java: 无法访问org.springframework.boot.SpringApplication······类文件具有错误的版本 61.0, 应为 52.0。
作者:mmseoamin日期:2023-12-13
  1. 错误详情

    java: 无法访问org.springframework.boot.SpringApplication······类文件具有错误的版本 61.0, 应为 52.0。,在这里插入图片描述,第1张

  2. 分析错误

    这段错误信息表明你的Java编译器(Javac)正在尝试访问 “org.springframework.boot.SpringApplication ”类,但它发现了一个版本不匹配的类文件。具体来说,错误信息中提到:

  • 类文件的版本是 61.0,但应该是 52.0。

    这意味着你使用的“org.springframework.boot.SpringApplication” 类的编译版本(61.0)与当前Java编译器的版本不匹配。通常情况下,编译版本(class file version)应该与你的Java编译器版本相对应。版本号代表Java编译器的兼容性级别。

    Java 版本类文件版本
    Java 1.145.3
    Java 1.246.0
    Java 1.347.0
    Java 1.448.0
    Java 549.0
    Java 650.0
    Java 751.0
    Java 852.0
    Java 953.0
    Java 1054.0
    Java 1155.0
    Java 1256.0
    Java 1357.0
    Java 1458.0
    Java 1559.0
    Java 1660.0
    Java 1761.0
    1. 解决办法
    • 更新Java编译器:将你的Java编译器更新到与你正在使用的Spring Boot版本兼容的版本。如果你使用的是较新版本的Spring Boot,那么你需要使用相应版本的Java编译器。

    • 降低Spring Boot版本:如果你的项目没有特别需要使用较新版本的Spring Boot,可以考虑将Spring Boot版本降低到与你的Java编译器版本兼容的版本。你可以在项目的Maven或Gradle配置文件中指定要使用的Spring Boot版本。

    • 删除错误的类文件:根据错误信息中的提示,你也可以尝试删除 /D:/apache-maven-3.6.3/repository/org/springframework/boot/spring-boot/3.1.3/spring-boot-3.1.3.jar!/org/springframework/boot/SpringApplication.class 文件,并重新构建项目。(不建议)

      这里推荐使用第二种:

      打开pom.xml文件。将spring boot的版本号改为对应的版本。java8对应的是52,然而Spring Boot 2.0.x 版本对应的Java类文件版本都是 52。

      java: 无法访问org.springframework.boot.SpringApplication······类文件具有错误的版本 61.0, 应为 52.0。,在这里插入图片描述,第2张

      改好之后关闭IDEA重启就好。如果还有报错异常,打开旁边的maven,点击clean,再刷新一下就好了。

      java: 无法访问org.springframework.boot.SpringApplication······类文件具有错误的版本 61.0, 应为 52.0。,在这里插入图片描述,第3张

      说点题外话

      • SpringApplication.class文件 是Spring Boot应用程序的入口点,它封装了启动和配置Spring应用程序的复杂逻辑,使开发者能够更容易地创建和运行Spring Boot应用程序。其主要功能是启动Spring容器、加载配置、管理Bean和处理应用程序的生命周期。因为这是一个二进制文件,直接打开通常会看到乱码或无法识别的字符。
      • 如果想要打开看看:
        1. 可以先用winRAR打开jar包。
        2. 然后将里面的SpringApplication.class文件复制到桌面或者其他地方,用powershell打开。
        3. 看之前,需要增加Windows PowerShell缓冲区大小。右击Windows PowerShell的屏幕左上角,选择属性,找到布局,选择屏幕缓冲区大小的高度。

          java: 无法访问org.springframework.boot.SpringApplication······类文件具有错误的版本 61.0, 应为 52.0。,在这里插入图片描述,第4张

          因为SpringApplication.class的类文件信息的字节数,超过了默认的缓冲区大小,无法查看完整的类文件信息。

        4. 进入powershell后,使用javap -v SpringApplication.class命令即可查看。

          javap -v SpringApplication.class

        5. 然后就能查看了,虽然几乎看不大懂。下面那个61应该就是版本号了。

        java: 无法访问org.springframework.boot.SpringApplication······类文件具有错误的版本 61.0, 应为 52.0。,在这里插入图片描述,第5张