gpt4 book ai didi

java - 关于不同jar中存在两个同名类?

转载 作者:行者123 更新时间:2023-11-30 07:08:47 26 4
gpt4 key购买 nike

在我当前的项目中,我使用Guava Cache来缓存过期的内容,但是当实际调用此接口(interface)时,出现以下错误

Caused by: java.lang.NoSuchMethodError: com.google.common.base.Platform.systemNanoTime()J
at com.google.common.base.Ticker$1.read(Ticker.java:64)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2225)

原因是类路径中有两个Platform

enter image description here

一个位于 Gauva 中,一个位于 google-collections:jar

并且Guava的LocalCache使用google-collectionsPaltform会导致此错误。我对此有一些疑问,为什么同一个 jar 中的类没有更高的优先级?为什么不随机选择一个,而总是使用 google-collectionsPlatform

最佳答案

是的有可能两个 jar 包含相同的类名。例如,当您导入同一库的不同版本的两个 jar 时,就会发生这种情况。

如果您使用 maven 导入依赖项,例如当您导入库时,它可能会导入其他库的依赖项,从而导致此类问题。在这种情况下,您需要明确指出,当您导入库时,您需要排除次要依赖项。这是通过 exclusions 完成的标签。

关于java - 关于不同jar中存在两个同名类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39575969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com