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。