在类路径上检测到log4j-over-slf4j.jar和slf4j-log4j12.jar,抢占StackOverflowError

时间:2016-06-28 19:01:26

标签: java logging ant jar

从SLF4J页面我理解了这个

  

slf4j-log4j12模块的目的是将对SLF4J记录器的调用委托或重定向到log4j。 log4j-over-slf4j模块的目的是将对log4j记录器的调用重定向到SLF4J。如果SLF4J与slf4j-log4j12.jar绑定并且类路径上也存在log4j-over-slf4j.jar,则在第一次调用SLF4J或log4j记录器后,将不可避免地发生StackOverflowError。

我的问题是如果我使用的两个库包含这些jar,如何防止此错误?

2 个答案:

答案 0 :(得分:0)

遇到类似的错误,这就是我如何使用NetBeans IDE 8.2解决它的方法:

  1. 访问netbeans IDE上的Project Explorer视图。进入依赖项下的项目,将光标悬停在 log4j-over-slf4j.jar 上,以查看间接导入了哪些依赖项,如下所示。

enter image description here

  1. 右键单击导入jar文件,然后选择排除依赖项

enter image description here

  1. 要确认,请打开pom.xml文件,您会注意到 exclusion 元素如下所示。
    enter image description here

  2. 启动maven全新安装并运行您的项目。祝你好运!

答案 1 :(得分:-2)

除了摆脱其中一个罐子外,没有办法防止这个错误。