我在代码中使用stanford Parser。我在项目中添加了所有相关库。当我在控制台上运行我的代码时,它工作得很好。但是在使用选项“将所需的库复制到生成的JAR旁边的子文件夹”中创建源的“runnable jar”并在commmand promt上运行它之后,它会抛出错误:
线程“Thread-2”中的异常 java.lang.NoSuchMethodError:
edu.stanford.nlp.process.DocumentPreprocessor(Ljava / IO /阅读器;):V 在edu.stanford.nlp.tagger.maxent.MaxentTagger.tokenizeText(MaxentTagger.java:852) 在edu.stanford.nlp.tagger.maxent.MaxentTagger.tokenizeText(MaxentTagger.java:837) 我在classpath中提供了所有必需的库。此方法tokenizeText也存在于MaxentTagger中。请提出一些解决方案。
答案 0 :(得分:1)
这几乎可以肯定意味着您已经将解析器和标记器的不兼容版本组合在一起。例如,可能插入到jar文件中的标记器版本与在命令行上运行代码时拾取的版本不同。您使用的是什么版本的解析器和标记器?从堆栈跟踪中的行号看,它似乎不是最新版本。