求助,运行官方实例出现java.lang.IllegalAccessError
在java1.7且 不使用Maven,导入 http://webmagic.io/download.html 中0.5.2的所有jar包的情况下,运行http://webmagic.io/docs/zh/posts/ch2-install/first-project.html 中的实例,结果报出以下错误,不知是什么原因呢?在网上搜索,就搜到一个提问的,却没找到对应的答案,只好向此处求助下
主要:
Exception in thread "pool-1-thread-1" java.lang.IllegalAccessError: class com.google.common.collect.StandardTable$RowMap cannot access its superclass com.google.common.collect.Maps$ImprovedAbstractMap
详细:
二月 12, 2016 11:50:02 下午 us.codecraft.webmagic.Spider run
信息: Spider github.com started!
二月 12, 2016 11:50:02 下午 us.codecraft.webmagic.downloader.HttpClientDownloader download
信息: downloading page https://github.com/code4craft
Exception in thread "pool-1-thread-1" java.lang.IllegalAccessError: class com.google.common.collect.StandardTable$RowMap cannot access its superclass com.google.common.collect.Maps$ImprovedAbstractMap
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at com.google.common.collect.StandardTable.createRowMap(StandardTable.java:698)
at com.google.common.collect.StandardTable.rowMap(StandardTable.java:694)
at com.google.common.collect.HashBasedTable.rowMap(HashBasedTable.java:55)
at us.codecraft.webmagic.Site.getAllCookies(Site.java:130)
at us.codecraft.webmagic.downloader.HttpClientGenerator.generateCookie(HttpClientGenerator.java:84)
at us.codecraft.webmagic.downloader.HttpClientGenerator.generateClient(HttpClientGenerator.java:73)
at us.codecraft.webmagic.downloader.HttpClientGenerator.getClient(HttpClientGenerator.java:45)
at us.codecraft.webmagic.downloader.HttpClientDownloader.getHttpClient(HttpClientDownloader.java:63)
at us.codecraft.webmagic.downloader.HttpClientDownloader.download(HttpClientDownloader.java:92)
at us.codecraft.webmagic.Spider.processRequest(Spider.java:408)
at us.codecraft.webmagic.Spider$1.run(Spider.java:322)
at us.codecraft.webmagic.selector.thread.CountableThreadPool$1.run(CountableThreadPool.java:74)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
谢谢,找到原因了。。多了个1.6的java环境
回复
哥们,请问怎么解决的?望不吝赐教
回复
看自己的回复当初是由于项目中存在了两个java sdk版本的缘故,删了1.6的java环境之后好了
回复
@iwinder : 请问一下怎么删除一个Java1.6环境?我用myeclipse 10 创建选择1.6 其他的也没有选择什么,机器上运行1.7应该没有什么问题吧。
@thomas_Roosevelt 回复
@thomas_Roosevelt : 没事啊,我本来是用的1.7,忘了什么原因了里面多了个1.6Java环境,结果程序里同时存在了1.6和1.7,如是悲剧了。。最后删了不用的1.6就好了
最好maven,要不就调整一下包的依赖顺序吧,参照https://github.com/code4craft/webmagic/blob/master/README-zh.md