🗒️Java|LinkageError解决
2023-5-23
| 2023-6-12
字数 350阅读时长 1 分钟
type
status
date
slug
summary
tags
category
icon
password
思路参考这个回答
在解决依赖冲突的场景中,偶尔会遇到这个问题:
显然,这是log4j的依赖冲突,但是通过idea的Mavendependency Analyzer并没有找到冲突的依赖,想办法排依赖可能就解决了。然而这种解决方式并不靠谱。这里把问题出现的原因和解决流程记录一下。

排查流程

这个问题是ILoggerFactory这个类被加载了两次
  1. 在jvm参数里添加 -verbose:class, 打印类的加载路径找到冲突的jar包
可以看到这个类在slf4j-api-1.7.30.jar和hive-exec-2.3.8.jar上都出现了,可以断定hive-exec-2.3.8.jar里包含了其他版本的slf4j依赖。
  1. 通过反编译查看依赖版本通过jd-gui查看hive-exec-2.3.8.jar里包含的slf4j依赖版本发现两个版本确实是不一致的,想办法解决这个问题。
notion image

解决

  1. 通过maven的依赖覆盖解决这个问题
  1. 通过maven shade插件改名解决这个问题
  • java
  • Java|volatile关键字使用anki构建单词库
    Loading...