Python java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory解决办法

40 篇文章 1 订阅
26 篇文章 1 订阅

在使用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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "java.lang.noclassdeffounderror: org/slf4j/loggerfactory" 意味着在程序运行时找不到类 "org.slf4j.loggerfactory"。这通常是由于缺少依赖包或者依赖包版本不正确导致的。建议检查项目的依赖配置,确保所需的包都已正确安装。 ### 回答2: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory意味着在运行Java程序时,找不到所需的slf4j库中的LoggerFactory类。 slf4j是一个Java的日志框架,提供了简单的日志记录接口,而LoggerFactoryslf4j框架中的一个重要类。这个错误通常发生在以下几种情况下: 1. 缺少slf4j库:这可能是由于缺少所需的slf4j库导致的。解决办法是下载并在项目的构建路径中添加所需的slf4j库。 2. 版本冲突:可能存在多个版本的slf4j库在项目中导致冲突。在这种情况下,需要检查项目中是否存在多个版本的slf4j库,并确保只使用一个版本。可以通过更新或删除冲突的库来解决这个问题。 3. 类路径错误:这个错误也可能是由于错误的类路径导致的。请检查类路径设置是否正确,并确保正确地引用了所需的slf4j库。 4. 编译错误:如果使用了某个包含LoggerFactory的库,但该库不可用或存在编译错误,那么也可能引发这个错误。在这种情况下,需要检查所使用的库是否正确安装和配置。 综上所述,java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory错误是由于无法找到所需的slf4j库中的LoggerFactory类所导致的。解决这个错误的方法包括添加所需的库、解决版本冲突、检查类路径设置和确认所使用的库是否正确安装。 ### 回答3: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactoryJava 中的一个错误,意味着找不到 org.slf4j.LoggerFactory 这个类。 这个错误通常是由于项目未正确配置所需的依赖导致的。org.slf4j.LoggerFactoryslf4j(Simple Logging Facade for Java)日志框架的一个关键类,被用来获取日志记录器。 要解决这个错误,需要检查项目的依赖配置。首先,确保项目中已经引入了 slf4j 的相关库,包括 slf4j-api 和相应的实现库,比如 logback 或者 log4j。可以通过在项目的构建工具(如 Maven、Gradle)的配置文件中添加正确的依赖来解决问题。 如果依赖正确配置并引入,但仍然出现该错误,可能是因为依赖冲突。在项目中可能同时引入了多个不同版本的 slf4j 库,导致冲突。解决这个问题可以通过排查冲突的依赖,并将它们的版本统一。 总结而言,java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 错误的原因是缺少 slf4j 的相关依赖或者存在依赖冲突。通过正确配置依赖并解决冲突,可以解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值