Spring Boot Jar包瘦身后出现IllegalAccessError:如何排查并解决类加载器冲突?

spring boot jar包瘦身后出现illegalaccesserror:如何排查并解决类加载器冲突?

Spring Boot Jar包瘦身引发的IllegalAccessError:类加载器冲突排查与修复

为减小Spring Boot应用的Jar包体积,开发者常采用Jar包瘦身策略,将依赖库移至Jar包外部。然而,此操作可能导致意想不到的IllegalAccessError错误,本文将详细分析此问题。

问题描述:

一个Spring Boot应用(版本2.3.2.RELEASE,Spring Cloud版本Hoxton.SR9,Spring Cloud Alibaba版本2.2.6.RELEASE)在瘦身操作后,使用java -jar命令启动时报错:

Caused by: java.lang.IllegalAccessError: class org.springframework.cloud.openfeign.hystrixtargeter$$EnhancerBySpringCGLIB$$7e887a8a cannot access its superclass org.springframework.cloud.openfeign.hystrixtargeter    at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_333]    ...

该错误表明Spring CGLIB生成的代理类org.springframework.cloud.openfeign.hystrixtargeter$$EnhancerBySpringCGLIB$$7e887a8a无法访问其父类,通常由类加载器冲突引起。开发者尝试自定义BeanPostProcessor调整类加载器,但问题依旧存在。瘦身策略是使用Maven Dependency Plugin将依赖库复制到Jar包外部的lib目录,并在MANIFEST.MF文件中添加指向该目录的Class-Path。

问题根源分析:

虽然开发者怀疑MANIFEST.MF中的Class-Path配置导致类加载器不一致,但根本原因在于缺少Spring Boot Maven Plugin以及Maven Jar Plugin配置不完整。 Spring Boot Maven Plugin在打包时会自动处理类加载器问题,确保应用正常运行。瘦身操作中移除该插件,仅依赖Maven Jar Plugin和Maven Dependency Plugin,导致问题出现。Maven Jar Plugin能创建Jar包并设置Class-Path,但缺乏Spring Boot的类加载器管理机制,从而引发IllegalAccessError。

解决方案:

通过完善Maven Jar Plugin配置解决此问题。关键在于正确配置主类(mainClass)和输出目录(outputDirectory),同时保留addClasspath、classpathPrefix等配置,并移除Spring Boot Maven Plugin。完整的Maven Jar Plugin配置如下:

    org.apache.maven.plugins    maven-jar-plugin                                        true                lib/                false                com.bdip.cost.CostApplication                            ${boot-jar-output}    

此配置确保Maven Jar Plugin正确设置主类和输出目录,Maven Dependency Plugin继续负责将依赖库复制到lib目录,避免类加载器冲突,从而解决IllegalAccessError问题。

以上就是Spring Boot Jar包瘦身后出现IllegalAccessError:如何排查并解决类加载器冲突?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/171125.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2026年8月29日 08:51:16
如何限制Linux用户可执行命令 sudo权限精细控制方案
下一篇 2026年8月29日 08:55:16

相关推荐

  • 怎么让豆包AI生成Python网络爬虫框架

    怎么让豆包AI生成Python网络爬虫框架怎么让豆包AI生成Python网络爬虫框架怎么让豆包AI生成Python网络爬虫框架怎么让豆包AI生成Python网络爬虫框架

    使用豆包ai生成python爬虫框架的步骤如下:1. 明确需求,包括目标网站、数据类型和是否需处理动态内容;2. 向豆包ai描述具体任务,如抓取豆瓣电影top250的标题与评分,并指定使用requests和beautifulsoup;3. 获取基础代码模板后,添加异常处理、代理设置、日志记录及数据存…

    2026年10月3日 • 用户投稿
    000
  • Mac上安装composer的详细步骤

    Mac上安装composer的详细步骤Mac上安装composer的详细步骤Mac上安装composer的详细步骤Mac上安装composer的详细步骤

    答案:在Mac上安装Composer需先确认PHP已安装,使用curl下载安装脚本并生成composer.phar,将其移至/usr/local/bin目录以全局调用,最后通过composer命令验证安装成功,并可选配置自动补全功能。 在Mac上安装Composer非常简单,可以通过命令行工具快速完…

    2026年10月3日 • 用户投稿
    100
  • “人工智能+ ” 硅基流动在行动

    “人工智能+ ”  硅基流动在行动“人工智能+ ”  硅基流动在行动“人工智能+ ”  硅基流动在行动“人工智能+ ”  硅基流动在行动

    8月26日,国务院印发《关于深入实施“人工智能+”行动的意见》(以下简称《意见》),明确提出了2027年、2030年和2035年的阶段性发展目标。实现这些目标的关键在于切实推进各项重点任务落地。《意见》中强调要加快推动人工智能与六大关键领域的深度融合,而要在真实场景中释放AI的强大潜力,“强化基础支…

    2026年10月3日 • 用户投稿
    000
  • Java JSON数据处理:利用Josson库高效提取嵌套结构中的统计信息

    Java JSON数据处理:利用Josson库高效提取嵌套结构中的统计信息Java JSON数据处理:利用Josson库高效提取嵌套结构中的统计信息Java JSON数据处理:利用Josson库高效提取嵌套结构中的统计信息Java JSON数据处理:利用Josson库高效提取嵌套结构中的统计信息

    本文详细介绍了在Java中如何处理复杂的嵌套JSON数据,并将其转换为扁平化的POJO对象,同时计算特定字段的最小值和最大值。通过引入强大的Josson库进行JSON数据预处理和转换,结合Jackson ObjectMapper进行最终的反序列化,能够极大地简化从层次结构数据中提取聚合统计信息的复杂…

    2026年10月3日 • 用户投稿
    000
  • Mac如何关闭“智能”引号_Mac文本编辑智能标点关闭方法

    Mac如何关闭“智能”引号_Mac文本编辑智能标点关闭方法Mac如何关闭“智能”引号_Mac文本编辑智能标点关闭方法Mac如何关闭“智能”引号_Mac文本编辑智能标点关闭方法Mac如何关闭“智能”引号_Mac文本编辑智能标点关闭方法

    关闭Mac自动转换引号功能的方法是:通过系统设置取消“使用智能引号”选项,可在键盘→文本输入→高级中操作;或在特定应用如TextEdit、Xcode中单独关闭;也可用Shift+Option+输入直双引号,Option+输入直单引号。 如果您在使用Mac进行文本输入时发现引号自动变为弯引号,这可能是…

    2026年10月3日 • 用户投稿
    100
  • composer –optimize-autoloader参数对性能有多大提升?

    composer –optimize-autoloader参数对性能有多大提升?composer –optimize-autoloader参数对性能有多大提升?composer –optimize-autoloader参数对性能有多大提升?composer –optimize-autoloader参数对性能有多大提升?

    使用 –optimize-autoloader 可显著提升 Composer 自动加载性能,其原理是生成静态类映射表、预先注册所有类并减少文件 I/O;在 Laravel 或 Symfony 项目中,加载速度提升 2~5 倍,响应时间减少 10%~30%;该参数适用于生产环境部署和 CI…

    2026年10月3日 • 用户投稿
    000
  • composer提示“The requested PHP extension pdo_mysql is missing”如何处理?

    composer提示“The requested PHP extension pdo_mysql is missing”如何处理?composer提示“The requested PHP extension pdo_mysql is missing”如何处理?composer提示“The requested PHP extension pdo_mysql is missing”如何处理?composer提示“The requested PHP extension pdo_mysql is missing”如何处理?

    答案是缺少pdo_mysql扩展,需安装并启用该扩展。首先通过php -m和php –ini确认CLI环境配置,根据操作系统使用相应命令安装(如apt-get、yum或brew),Windows用户需修改php.ini取消注释extension=pdo_mysql,最后重启服务并验证扩展…

    2026年10月3日 • 用户投稿
    000
  • 使用 Josson 转换 JSON 数据并映射到 Java POJO

    使用 Josson 转换 JSON 数据并映射到 Java POJO使用 Josson 转换 JSON 数据并映射到 Java POJO使用 Josson 转换 JSON 数据并映射到 Java POJO使用 Josson 转换 JSON 数据并映射到 Java POJO

    本文将介绍如何使用 Josson 库将复杂的 JSON 结构转换为 Java POJO (Plain Old Java Object),并计算每个单词在数组中的最小和最大出现次数。通过 Josson 提供的强大 JSON 查询和转换功能,可以简化数据处理过程,提高开发效率。 问题背景 在处理 JSO…

    2026年10月3日 • 用户投稿
    000
  • 硬盘突然无法识别怎么办?教你三步恢复重要数据!

    硬盘突然无法识别怎么办?教你三步恢复重要数据!硬盘突然无法识别怎么办?教你三步恢复重要数据!硬盘突然无法识别怎么办?教你三步恢复重要数据!硬盘突然无法识别怎么办?教你三步恢复重要数据!

    硬盘无法识别时,先检查物理连接、更换数据线和接口,确认供电正常;再通过设备管理器或磁盘工具判断是否被系统识别;若硬件无误但无法访问,尝试更新驱动或使用专业软件恢复数据;若硬盘有异响或完全不响应,应停止通电并送修专业机构。常见原因包括连接问题、供电不足、文件系统损坏或物理故障。恢复前切勿写入新数据、避…

    2026年10月3日 • 用户投稿
    200
  • 荣耀官宣新机Magic V5厚度:仅8.8mm

    荣耀官宣新机Magic V5厚度:仅8.8mm荣耀官宣新机Magic V5厚度:仅8.8mm荣耀官宣新机Magic V5厚度:仅8.8mm荣耀官宣新机Magic V5厚度:仅8.8mm

    6月23日,荣耀手机官方微博公布了旗下新机magic v5的机身厚度:8.8mm。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 该机型将在7月2日19点举行的荣耀Magic V5暨AI生态终端发布会上正式亮相。 此前已有消息透露,这款手机…

    2026年10月3日 • 用户投稿
    000
  • AMD电脑蓝屏显卡驱动问题如何应对?专家级教程帮助你排除故障。

    AMD电脑蓝屏显卡驱动问题如何应对?专家级教程帮助你排除故障。AMD电脑蓝屏显卡驱动问题如何应对?专家级教程帮助你排除故障。AMD电脑蓝屏显卡驱动问题如何应对?专家级教程帮助你排除故障。AMD电脑蓝屏显卡驱动问题如何应对?专家级教程帮助你排除故障。

    蓝屏错误“0x000000EA”或“ATIKMDAG.SYS”通常由AMD显卡驱动问题引起,需进入安全模式卸载原驱动,使用DDU工具深度清理残留,再安装官方WHQL认证的稳定版驱动,并检查显卡硬件连接、温度及BIOS设置以排除兼容性问题。 如果您在使用AMD显卡的电脑上遭遇蓝屏,特别是错误代码如“0…

    2026年10月3日 • 用户投稿
    000
  • composer diagnose命令:一键自查composer安装和配置问题

    composer diagnose命令:一键自查composer安装和配置问题composer diagnose命令:一键自查composer安装和配置问题composer diagnose命令:一键自查composer安装和配置问题composer diagnose命令:一键自查composer安装和配置问题

    composer diagnose 是 Composer 内置的诊断工具,用于检测环境配置、网络连接、权限等问题。运行 composer diagnose 可检查 PHP 环境、Git 设置、HTTP/HTTPS 连通性、GitHub 限流、磁盘空间及公钥验证等。若提示扩展缺失,需启用如 ext-c…

    2026年10月3日 • 用户投稿
    000
  • 如何在 Tomcat 9 中设置 Java 属性

    如何在 Tomcat 9 中设置 Java 属性如何在 Tomcat 9 中设置 Java 属性如何在 Tomcat 9 中设置 Java 属性如何在 Tomcat 9 中设置 Java 属性

    本文详细介绍了在Apache Tomcat 9环境下配置Java系统属性的推荐方法。通过修改JAVA_OPTS环境变量,用户可以灵活地为Tomcat JVM设置各类系统属性,例如日志配置路径、内存参数或自定义应用属性,从而优化服务器行为和应用性能。文章提供了针对Linux/macOS和Windows…

    2026年10月3日 • 用户投稿
    100
  • 小红书App如何分析笔记数据 小红书App后台指标的解读方法

    小红书App如何分析笔记数据 小红书App后台指标的解读方法小红书App如何分析笔记数据 小红书App后台指标的解读方法小红书App如何分析笔记数据 小红书App后台指标的解读方法小红书App如何分析笔记数据 小红书App后台指标的解读方法

    要查看小红书笔记传播效果,需进入专业号数据中心获取数据。首先打开小红书App,点击“我”进入个人主页,右上角选择“设置”,依次进入“创作者中心”或“专业号中心”,再点击“数据中心”查看整体与单篇笔记的数据报告。核心互动指标包括点赞数(反映内容认可度)、收藏数(体现实用价值)、评论数(衡量用户参与度)…

    2026年10月3日 • 用户投稿
    700
  • MySQL怎样修复损坏的表 MyISAM与InnoDB修复方法大全

    MySQL怎样修复损坏的表 MyISAM与InnoDB修复方法大全MySQL怎样修复损坏的表 MyISAM与InnoDB修复方法大全MySQL怎样修复损坏的表 MyISAM与InnoDB修复方法大全MySQL怎样修复损坏的表 MyISAM与InnoDB修复方法大全

    mysql修复损坏的表主要通过恢复数据完整性来避免丢失或崩溃,myisam和innodb引擎方法不同。1. 对于myisam表,先用check table确认损坏,再使用repair table修复,可选quick或extended参数;也可使用myisamchk工具修复,但需停止服务并备份数据。2…

    2026年10月3日 • 用户投稿
    000
  • VSCode 怎样配置编辑器的自动缩进规则 VSCode 编辑器自动缩进规则的配置技巧​

    配置vscode自动缩进需调整全局和项目设置,后者优先级更高;2. 主要设置包括editor.insertspaces、editor.tabsize、editor.autoindent等;3. 可通过settings.json进行语言特定配置;4. 使用editorconfig插件并创建.edito…

    2026年10月3日
    000
  • 外媒:配备M5心片的MacBook Pro或将在本月正式发布

    据最新传闻,苹果可能计划在发布配备m5 pro和m5 max芯片的高端macbook pro前,先推出一款搭载标准m5芯片的基础版macbook pro。 报道称,这款配备M5芯片的MacBook Pro已经进入预备发布的阶段,并且苹果一直在使用未发布的 macOS 26.0.2进行测试。而配备M5…

    2026年10月3日
    000
  • 火山引擎发布命令行 AI Agent:veCLI

    火山引擎发布命令行 AI Agent:veCLI火山引擎发布命令行 AI Agent:veCLI火山引擎发布命令行 AI Agent:veCLI火山引擎发布命令行 AI Agent:veCLI

    https://www.php.cn/link/801f7c385478d949ce0cdc2640450f89 火山引擎正式发布命令行AI智能助手veCLI,深度集成豆包大模型1.6版本。通过将先进的人工智能能力嵌入命令行环境,veCLI让开发者在无需切换工具的前提下,即可享受智能化的全流程开发支…

    2026年10月3日 • 用户投稿
    000
  • 《速度与激情 街机版》登陆全主机平台 10月24日上线

    《速度与激情 街机版》登陆全主机平台 10月24日上线《速度与激情 街机版》登陆全主机平台 10月24日上线《速度与激情 街机版》登陆全主机平台 10月24日上线《速度与激情 街机版》登陆全主机平台 10月24日上线

    近日,gamemill entertainment 联合 cradle games 正式宣布,《速度与激情:街机版》(fast & furious: arcade edition)将于10月24日登陆 playstation 5、xbox series 以及 switch 平台。官方同步发布…

    2026年10月3日 • 用户投稿
    000
  • DeepSeek润色学术论文:语言提升与逻辑优化要点

    DeepSeek润色学术论文:语言提升与逻辑优化要点DeepSeek润色学术论文:语言提升与逻辑优化要点DeepSeek润色学术论文:语言提升与逻辑优化要点DeepSeek润色学术论文:语言提升与逻辑优化要点

    deepseek润色学术论文的核心在于提升语言表达的精确性和逻辑结构的严谨性,具体包括以下方面:1. 语言润色:替换模糊词汇为具体表述、精简句子结构、使用学术化表达、检查术语正确性、避免口语化语言;2. 逻辑优化:梳理论证思路、检查论证完整性、优化章节结构、确保引用准确、实现前后呼应;3. 使用ai…

    2026年10月3日 • 用户投稿
    000

发表回复

登录后才能评论
关注微信