java.lang.NoClassDefFoundError:edu / stanford / nlp / parser / lexparser / LexicalizedParser

时间:2015-11-03 09:30:54

标签: java intellij-idea stanford-nlp

我正在使用Stanford Parser API。我的系统规格如下:

操作系统:Win8

IDE:.IntelliJIdea14

JDK:1.8

Stanford-Parser 3.5.2版本

我在模块依赖项(ClassPath)中导入了stanford-parser.jar和ejml-0.23.jar。  有一些解析器模型保存在名为stanford-parser-3.5.2-models的jar文件中。

斯坦福大学的支持团队说:

  

"在最近的发行版中,模型包含在一个jar文件里面   解析器分发。例如,在2012-11-12发行版中,   这些模型包含在stanford-parser-2.0.4-models.jar中   访问这些模型的最简单方法是将此文件包含在您的文件中   类路径。然后,解析器将能够从中读取模型   jar文件。 "

但我无法导入stanford-parser-3.5.2-models.jar文件。所以我将其解压缩,将模型保存在D Drive中的适当地址中,最后更改了以下代码:

String parserModel = "edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz";

LexicalizedParser lp = LexicalizedParser.loadModel(parserModel);

String parserModel = "D:\\ MasterofScience\\Tools\\Stanford Dependenct Tree\\models" +
    "\\lexparser\\englishPCFG.ser.gz";

 LexicalizedParser lp = LexicalizedParser.loadModel(parserModel);

但是我给出了这些异常错误:

Exception in thread "main" java.lang.NoClassDefFoundError: edu/stanford/nlp/parser/lexparser/LexicalizedParser
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:119)
Caused by: java.lang.ClassNotFoundException: edu.stanford.nlp.parser.lexparser.LexicalizedParser
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more

即使我不改变代码,我收到同样的异常! 我该怎么办?

1 个答案:

答案 0 :(得分:0)

您在类路径中缺少解析器jar(stanford-parser.jar)。实际上,您可以将解析器jar和模型jar添加到类路径中,然后程序应该可以工作。