Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at NVoting.<init>(NVoting.java:143)
at Main.main(Main.java:8)
在这一行:
booleanQuery.add(new BM25BooleanQuery(current_tags[i],
"tags",
new StandardAnalyzer(org.apache.lucene.util.Version.LUCENE_31)),
BooleanClause.Occur.SHOULD);
我正在使用BM25 Okapi检索系统的实现:http://nlp.uned.es/~jperezi/Lucene-BM25
你能帮我解决这个问题吗?我正在使用Lucene 3.1 我也尝试过Lucene 2.9.4而没有运气。
感谢
答案 0 :(得分:1)
您使用不同的第三方库进行编译和执行,或者某些第三方库不兼容。
如果您使用一个版本的库进行编译而另一个版本(具有稍微不同的API)执行,则可能会发生错误。仔细检查所有库版本(它们适合吗?)和类路径。
答案 1 :(得分:0)
我不是Java程序员,所以请谨慎对待这个答案,但这是我看到的事实:
IncompatibleClassChangeError
表示依赖类中的不兼容更改所以我认为你需要使用相同版本的Lucene作为构建时使用的BM25实现,或者从源代码重建它(如果可能的话)。
祝你好运,