java.lang.NoClassDefFoundError:org/apache/commons/lang/Validate

LGA*_*GAP 4 java

为什么会发生以下情况?如何解决?

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
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 9

这意味着org.apache.commons.lang.Validate运行时类路径中缺少该类.您只需将包含该类的JAR文件添加到运行时类路径中.这是Apache Commons Lang JAR文件.在当前的Jsoup下载页面中也明确提到了这一点.

假设您使用普通香草启动它,java.exe就像上一个问题一样,那么这样做:

java -cp .;/path/to/jsoup.jar;/path/to/commons-lang.jar com.example.YourClass
Run Code Online (Sandbox Code Playgroud)

请注意,Jsoup作者提到在下一个Jsoup版本中删除了Commons Lang依赖项.

jsoup的下一个版本不需要Apache Commons-Lang或任何其他外部依赖项,这会将jar大小降低到115K左右.

Jsoup 1.3.1是第一个不再需要Apache Commons Lang的版本.