请问这个错误怎么解决
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactoryat org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:66)
at crawler.DownLoadFile.downloadFile(DownLoadFile.java:66)
at crawler.MyCrawler.crawling(MyCrawler.java:40)
at crawler.MyCrawler.main(MyCrawler.java:55)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(Unknown Source)
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)
... 4 more
缺少包
http://commons.apache.org/proper/commons-logging/download_logging.cgi 我加了,但是又有这样的问题Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException
at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:220)
at org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89)
at crawler.DownLoadFile.downloadFile(DownLoadFile.java:58)
at crawler.MyCrawler.crawling(MyCrawler.java:40)
at crawler.MyCrawler.main(MyCrawler.java:55)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.DecoderException
at java.net.URLClassLoader$1.run(Unknown Source)
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)
... 5 more
我继续加包,还有更多的问题。。。。
回复 2# rover12421
回复 3# hfy9013
还是缺包啊
http://commons.apache.org/proper/commons-codec/download_codec.cgi 你是用httclient没这么的外部包啊,你解压httpclient的时候里面有好几个jar,你都引入就行了
你需要的包应该都在commons一个包里,我给你发的是commons的一些子项目jar下载地址.httpclient里有commons这个包的 看见它java.lang.NoClassDefFoundError,就把那个包放到lib目录下且在project将lib引入。 缺少log包,有好几个依赖包。 运行的时候加上-verbose或者-XX:+TraceClassLoading,看看有没有加载名字里含有commons的jar包。
例如:
java -verbose <YourMainClass>
或者:
java -XX:+TraceClassLoading <YourMainClass>
如果没有加载的话就用-cp或者-classpath参数来指定jar包的路径。
页:
[1]