我正在尝试使用Lucene StandardTokenizer,如下面的代码所示:
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.util.Version;
public class App {
public static void main(String[] args) throws Exception {
// line 28 goes below
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_40);
// the rest is irrelevant
}
}
投掷VerifyError
:
Exception in thread "main" java.lang.VerifyError: class org.apache.lucene.analysis.standard.StandardTokenizer overrides final method setReader.(Ljava/io/Reader;)V
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at lt.App.main(App.java:28)
任何想法如何解决这个问题?非常感谢。
答案 0 :(得分:3)
您的类路径中是否有2个不同版本的lucene?
方法setReader(...)
已添加到4.0.0-BETA版本中的StandardTokenizer
。但它后来从StandardTokenizer
中删除,并在4.0.0发行版之前在Tokenizer
中取得了最终结果。所以我可能在你的类路径中有4.0.0-BETA版本的 lucene-analyzers-common jar以及 lucene-core jar的4.0.0发行版。
LUCENE-4343可能是改变这种情况的问题。