获取java.lang.ClassNotFoundException:org.apache.commons.logging.LogFactory异常

178 java noclassdeffounderror

我正在执行spring的简单依赖注入程序并获得此异常.我已经包含了common-logging1.1.1.jar和spring.jar文件.你能帮帮忙吗?

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:119)
    at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:55)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:56)
    at com.client.StoryReader.main(StoryReader.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    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)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 6 more
Run Code Online (Sandbox Code Playgroud)

小智 117

我也遇到了同样的问题,要修复,从下面的url下载jar文件

http://commons.apache.org/logging/download_logging.cgi

并复制到您的lib文件夹,将解决您的问题.

  • 即使在classpath中添加了上面提到的commons jar之后,这对我也不起作用 (2认同)
  • 都不适合我。这些库已损坏。真令人沮丧 (2认同)

asu*_*uka 110

如果您使用maven来管理依赖项,请在pom.xml中添加以下行:

<dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)


son*_*ida 39

您只需下载commons-logging-1.1.2.jar,然后将此文件复制到libs中

最后,它的工作原理.


Par*_*uti 19

commons-logging-1.1.1.jar或jcl-over-slf4j-1.7.6.jar al

如果您使用的是maven,请使用以下代码.

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>${slf4j.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

  • 包括"jcl-over-slf4j"是唯一对我有用的解决方案.我已经在我的依赖项中记录了commons. (2认同)

小智 18

我遇到了同样的问题,只需添加commons-logging.jar到类路径即可解决问题.


小智 8

添加commons-logging.jar或commons-logging-1.1.jar将解决这个问题......


Jes*_*per 6

我已经包含了common-logging1.1.1.jar和...

你确定拼写了JAR文件的名称吗?我认为它应该是commons-logging-1.1.1.jar(注意-名称中的额外内容).还要检查目录名是否正确.

NoClassDefFoundError 总是意味着找不到类,所以很可能你的类路径不正确.

  • "NoClassDefFoundError"也可能是由其他极端情况引起的,例如类初始化器在不明显的情况下失败时. (2认同)

Pat*_*yer 6

将范围设置为编译为我做了

<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.2</version>
  <scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)


emi*_*lls 5

尝试彻底清除应用程序的目标/部署目录,以摆脱任何陈旧的库 jar。重新构建并检查 commons-logging.jar 是否实际放置在正确的 lib 文件夹中。当您为应用程序构建库时,它可能不包括在内。