1. 程式人生 > >Python java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory解決辦法

Python java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory解決辦法

在使用NLTK中的Stanford Parser Python介面時,會遇到報錯資訊:

C:\Users\Acer>jython E:\jcode\test_stanford.py
Traceback (most recent call last):
  File "E:\jcode\test_stanford.py", line 5, in <module>
    from stanford import StanfordParser, PySentence
  File "F:\jython2.5.2\Lib\stanford.py", line 65, in <module>
    from edu.stanford.nlp.parser.lexparser import LexicalizedParser
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
        at edu.stanford.nlp.parser.common.ParserGrammar.<clinit>(ParserGrammar.java:46)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.python.core.Py.loadAndInitClass(Py.java:895)
        at org.python.core.Py.findClassInternal(Py.java:830)
        at org.python.core.Py.findClassEx(Py.java:881)
        at org.python.core.packagecache.SysPackageManager.findClass(SysPackageMa
nager.java:133)
        at org.python.core.packagecache.PackageManager.findClass(PackageManager.
java:28)
        at org.python.core.packagecache.SysPackageManager.findClass(SysPackageMa
nager.java:122)
        at org.python.core.PyJavaPackage.__findattr_ex__(PyJavaPackage.java:137)


        at org.python.core.PyObject.__findattr__(PyObject.java:863)
        at org.python.core.imp.import_name(imp.java:849)
        at org.python.core.imp.importName(imp.java:884)
        at org.python.core.ImportFunction.__call__(__builtin__.java:1220)
        at org.python.core.PyObject.__call__(PyObject.java:357)
        at org.python.core.__builtin__.__import__(__builtin__.java:1173)
        at org.python.core.imp.importFromAs(imp.java:978)
        at org.python.core.imp.importFrom(imp.java:954)
        at stanford$py.f$0(F:\jython2.5.2\Lib\stanford.py:465)
        at stanford$py.call_function(F:\jython2.5.2\Lib\stanford.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyCode.call(PyCode.java:18)
        at org.python.core.imp.createFromCode(imp.java:386)
        at org.python.core.imp.createFromPyClass(imp.java:204)
        at org.python.core.imp.loadFromSource(imp.java:567)
        at org.python.core.imp.find_module(imp.java:473)
        at org.python.core.imp.import_next(imp.java:713)
        at org.python.core.imp.import_name(imp.java:824)
        at org.python.core.imp.importName(imp.java:884)
        at org.python.core.ImportFunction.__call__(__builtin__.java:1220)
        at org.python.core.PyObject.__call__(PyObject.java:357)
        at org.python.core.__builtin__.__import__(__builtin__.java:1173)
        at org.python.core.imp.importFromAs(imp.java:978)
        at org.python.core.imp.importFrom(imp.java:954)
        at org.python.pycode._pyx0.f$0(E:\jcode\test_stanford.py:66)
        at org.python.pycode._pyx0.call_function(E:\jcode\test_stanford.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyCode.call(PyCode.java:18)
        at org.python.core.Py.runCode(Py.java:1261)
        at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:235)
        at org.python.util.jython.run(jython.java:247)
        at org.python.util.jython.main(jython.java:129)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
        at org.python.core.SyspathJavaLoader.findClass(SyspathJavaLoader.java:127)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 42 more


java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory


解決辦法:參考本人另一篇博文“Python 呼叫 Stanford Parser 兩種方法”中的方法二:http://blog.csdn.net/huludan/article/details/50717110