为什么会出现以下情况,我该如何解决?
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/Validate
at org.jsoup.DataUtil.load(DataUtil.java:47)
at org.jsoup.Jsoup.parse(Jsoup.java:57)
at linksfind.main(linksfind.java:12)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.Validate
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)
... 3 more
最佳答案
这意味着运行时类路径中缺少类 org.apache.commons.lang.Validate
。您只需将包含该类的 JAR 文件添加到运行时类路径中。这是 Apache Commons Lang JAR file .在当前的 Jsoup 下载页面中也明确提到了这一点。
假设您像在 previous question 中那样使用普通的 java.exe
启动它,然后这样做:
java -cp .;/path/to/jsoup.jar;/path/to/commons-lang.jar com.example.YourClass
请注意 Jsoup 作者有 mentioned在下一个 Jsoup 版本中删除 Commons Lang 依赖项。
The next release of jsoup will not require Apache Commons-Lang or any other external dependencies, which brings down the jar size to around 115K.
Jsoup 1.3.1 是第一个不再需要 Apache Commons Lang 的版本。
关于java.lang.NoClassDefFoundError : org/apache/commons/lang/Validate 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3468027/