我正在开发一个项目,我想使用Apache Tika和Apache Jena。但是,当我尝试运行项目时,我得到以下异常:
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String; Ljava/lang/Object;Ljava/lang/Throwable;)V
我的理解是,这是因为Apache Tika包含旧版本的SLF4J(1.6.0之前版本)和Apache Jena包含更新版本(1.6.0或更高版本),并且两个版本之间存在重大变化SLF4J。
如何解决这个问题,以便我可以同时使用Tika和Jena?
现有的一些帖子谈到使用Maven来解决这个问题,但是a)我没有使用Maven,我不熟悉它以完全理解解决方案和b)我正在开发一个开发网络没有连接到互联网。
答案 0 :(得分:1)
如果失败,您需要重建一个系统并调整需要更改的内容。这两个系统都是开源的,可以使用代码和构建系统。
答案 1 :(得分:0)
我不会使用这两个库,除非我必须这样做。
如果您这么认为,那么问题的一个很好的解释就是:java-classpath-classloading-multiple-versions-of-the-same-jar-project
答案 2 :(得分:0)
解决方案是更改库的顺序,以便具有较新版本的SLF4J(Apache Jena)的库位于构建路径上的旧版本之前。