我有一个使用番石榴集合的暂存文件,我得到一些奇怪的错误,我必须假设是由于编辑器和实际运行环境假设不同版本的番石榴集合:
Exception in thread "main" java.lang.IllegalAccessError: tried to access method com.google.common.collect.Range.<init>(Lcom/google/common/collect/Cut;Lcom/google/common/collect/Cut;)V from class
com.google.common.collect.Ranges
at com.google.common.collect.Ranges.create(Ranges.java:80)
at com.google.common.collect.Ranges.closedOpen(Ranges.java:114)
at Scratch.main(scratch_2.java:69)
并不是说我实际上可以肯定地知道这一点,因为我也无法弄清楚我应该如何查看暂存文件正在拉入的版本。我已经从项目的部门中完全删除了番石榴,暂存文件仍然有效。 .. 为什么?图书馆从哪里来???临时运行配置完全没有任何可以决定这一点的东西:
然而它仍然运行得很好。我发现如果我从本地常春藤缓存中删除番石榴条目,它将不再运行。如果我然后将番石榴添加回我的项目的部门,它最终会再次出现在我的常春藤缓存中,然后即使我从项目部门中删除番石榴,临时文件也会再次正常。那么暂存文件只是选择一个随机版本还是什么?位于 的 ivy 缓存~/.ivy2/cache/com.google.guava
如下所示:
但是由于某种原因,还有一个“jars”文件夹具有 guava-12.0:
再说一次,我不知道正在使用哪个版本,也不知道为什么缓存有这么多不同的版本。有任何想法吗?