当前位置: 首页 > news >正文

错误: 加载主类 org.springframework.boot.loader.launch.JarLauncher 时出现 LinkageError

错误信息明确提示:

log

复制

下载

错误: 加载主类时出现 LinkageError
java.lang.UnsupportedClassVersionError: 
JarLauncher 的类文件版本是 61.0(对应 Java 17),
但当前运行的 Java 版本最高仅支持到 55.0(对应 Java 11)。
  • Java版本对照关系

    • class file version 55.0 → Java 11

    • class file version 61.0 → Java 17

这表明你的项目(或依赖的Spring Boot)是用 Java 17 编译的,但运行时环境使用的是 Java 11,导致版本不兼容。


分步解决方案

1. 检查当前Java版本

运行以下命令确认当前环境中的Java版本:

bash

复制

下载

java -version
  • 如果输出显示 11.x.x,说明你正在使用 Java 11

  • Spring Boot 3.x 及以上版本需要 Java 17+,而 Spring Boot 2.x 支持 Java 8-11。


2. 根据项目需求选择方案

根据项目依赖的Spring Boot版本,选择以下两种解决路径:

方案一:升级Java运行时到17+(推荐)
  • 适用场景:项目基于 Spring Boot 3.x(如RuoYi-Cloud-Plus 2.3.0可能使用了Spring Boot 3)。

  • 操作步骤

    1. 下载并安装 JDK 17(如 Oracle JDK 17 或 OpenJDK 17)。

    2. 配置环境变量,确保终端中 java -version 显示为 17.x.x

    3. 清理项目并重新构建:

      bash

      复制

      下载

      mvn clean install
    4. 重新运行启动命令:

      bash

      复制

      下载

      java -Djava.security.egd=file:/dev/./urandom -Dserver.port=9527 \-Dskywalking.agent.service_name=ruoyi-gateway \-Dskywalking.collector.backend_service=127.0.0.1:11800 \-javaagent:agent/skywalking-agent.jar \-jar target/ruoyi-gateway.jar
方案二:降级Spring Boot到2.x
  • 适用场景:必须使用 Java 11 且项目允许降级到 Spring Boot 2.x。

  • 操作步骤

    1. 在项目的 pom.xml 中将Spring Boot版本改为 2.7.x(兼容Java 11):

      xml

      复制

      下载

      运行

      <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version> <!-- 使用Spring Boot 2.x最新稳定版 -->
      </parent>
    2. 检查其他依赖(如 ruoyi-gateway)是否兼容 Spring Boot 2.x。

    3. 清理并重新构建项目:

      bash

      复制

      下载

      mvn clean install
    4. 重新运行启动命令。


3. 验证SkyWalking Agent兼容性

确保你使用的 skywalking-agent.jar 版本与Java版本匹配:

  • SkyWalking 9.x+ 支持 Java 11-17。

  • 如果降级到 Java 11,建议使用 SkyWalking 8.9.x(兼容性更好)。


4. 检查构建工具的Java版本配置

确保构建工具(Maven/Gradle)的编译配置与目标Java版本一致。
在 Maven 的 pom.xml 中添加:

xml

复制

下载

运行

<properties><maven.compiler.source>17</maven.compiler.source> <!-- 与运行时版本一致 --><maven.compiler.target>17</maven.compiler.target>
</properties>

附加验证

  • 检查Spring Boot版本
    在 pom.xml 中确认Spring Boot的版本:

    xml

    复制

    下载

    运行

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.5</version> <!-- 此为Spring Boot 3.x -->
    </parent>
    • 如果版本是 3.x.x,必须使用 Java 17+

    • 如果版本是 2.x.x,可使用 Java 8-11


总结

  • 根本原因:Java运行时版本(11)低于项目编译版本(17)。

  • 解决方案

    • 升级Java到17,或

    • 降级Spring Boot到2.x并保持Java 11。

根据项目实际需求选择合适的方案即可解决问题。

http://www.xdnf.cn/news/446329.html

相关文章:

  • 鸿蒙Next API17新特性学习之如何使用新增鼠标轴事件
  • 蚂蚁seo强引蜘蛛池,SEO优化的利器
  • 【Linux笔记】——进程信号的捕捉——从中断聊聊OS是怎么“活起来”的
  • Kotlin Compose 与传统 Android UI 开发对比
  • LabVIEW在电子电工教学中的应用
  • Python 之 selenium 打开浏览器指定端口进行接续操作
  • Nginx+Lua 实战避坑:从模块加载失败到版本冲突的深度剖析
  • 数字信号处理-大实验1.1
  • Vue3吸顶导航的实现
  • Jmeter变量传递介绍
  • JavaScript 中级进阶技巧之map函数
  • 哈希表的实现01
  • java每日精进 5.14【参数校验】
  • qml中定时器的用法
  • 操作系统期末复习笔记
  • WHAT - 前端开发滚动场景API罗列
  • Web UI测试效率低?来试Parasoft Selenic的智能修复与分析!
  • 从 “学会学习” 到高效适应:元学习技术深度解析与应用实践
  • 常见 RPC 协议类别对比
  • 《Effective Python》第2章 字符串和切片操作——深入理解 Python 中 __repr__ 与 __str__
  • 行业趋势与技术创新:驾驭工业元宇宙与绿色智能制造
  • 【氮化镓】AlGaN合金中成分相关的辐射响应
  • 最短路和拓扑排序知识点
  • 各省网上零售额数据(2015-2022年)-社科数据
  • C++之fmt库介绍和使用(1)
  • TCP/IP-——C++编程详解
  • 【windows server脚本每天从网络盘复制到本地】
  • C 语言学习笔记(8)
  • 【3Ds Max】.ive格式文件的导出与加载
  • Oracle数据库中,WITH..AS 子句用法解析