NoClassDefFoundError

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/CharUtils
    at com.lpkienge.wenda.service.SensitiveService.isSymbol(SensitiveService.java:82)
    at com.lpkienge.wenda.service.SensitiveService.addWord(SensitiveService.java:145)
    at com.lpkienge.wenda.service.SensitiveService.main(SensitiveService.java:187)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.CharUtils
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 3 more
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/CharUtils

NoClassDefFoundError错误产生的原因是:JVM在编译的时候能找到调用方法或静态变量所在的类,但在运行的时候找不到此类而引发的错误。

解决方法:查看配置文件中的jar依赖是否正确,或者换为较新版本。
commons-lang
<dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
            <scope>provided</scope>
        </dependency>

换为

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.1</version>
        </dependency>

问题解决。

lang3是Apache Commons 团队发布的工具包,要求jdk版本在1.5以上,相对于lang来说完全支持java5的特性,废除了一些旧的API。该版本无法兼容旧有版本,于是为了避免冲突改名为lang3。

 
posted @ 2018-08-08 19:43  Mibloom  阅读(451)  评论(0编辑  收藏  举报