我正在尝试使用Google的Guava库的EventBus。Guava java EventBus实例化错误
从番石榴的documentation应该很容易实例化一个EventBus对象。
我的代码:
package test;
import com.google.common.eventbus.EventBus;
public class Test {
public static void main(String[] args) {
EventBus bus = new EventBus("Sample");
}
}
我得到这个错误:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Objects.firstNonNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
at com.google.common.cache.CacheBuilder.getKeyStrength(CacheBuilder.java:355)
at com.google.common.cache.CustomConcurrentHashMap.<init>(CustomConcurrentHashMap.java:206)
at com.google.common.cache.ComputingCache.<init>(ComputingCache.java:39)
at com.google.common.cache.CacheBuilder.build(CacheBuilder.java:569)
at com.google.common.eventbus.EventBus.<init>(EventBus.java:156)
at test.Test.main(Test.java:7)
Java Result: 1
我和番石榴10.0,11.0和12.0,总是同样的错误尝试。我在OSX Lion上使用Netbeans 7.1:我已经尝试了Java 6(32和64位)和Java 7:没有任何改进。在谷歌我找不到任何东西。这是番石榴的问题吗?或者像往常一样,我错过了什么?
最好的问候,
亚历山德罗
乍一看,这看起来像一个错误,当您有不同的版本在classpath的同一个JAR文件,通常你得到的。 – biziclop 2012-07-09 16:58:18
我刚刚尝试在Windows上使用相同的设置,它工作正常。我会试着看看我是否有不同版本的同一个罐子。我会让你知道 – Alejander 2012-07-09 17:14:55
尝试'-verbose:class'命令行选项来查看你的类实际从哪里加载。 – biziclop 2012-07-09 17:46:57