估计是不同版本的类冲突,去Java HotSpot VM Options - www.oracle.com找到一个选项,TraceClassLoading。挺好用的,加载的每一个类都会打印出来,包括所在的jar包。搜索有问题的类名,能找到不止一个地方,这就是冲突的jar包,删除掉相应的过期类,解决。
具体原因:先前的JBoss logging不是独立的库,后来独立出来了,我用到的两个开源项目使用了不同版本的JBoss logging库,所以就有了两份。
下面是我测试时候的一部分输出:
> java -XX:+TraceClassLoading TempTest
[Opened /usr/java/jdk1.7.0_17/jre/lib/rt.jar]
[Loaded java.lang.Object from /usr/java/jdk1.7.0_17/jre/lib/rt.jar]
输出可能很多,最好把输出重定向到一个文件,以免部分输出丢失。
No comments:
Post a Comment