JDK8之The type java.util.Map$Entry cannot be resolved

时间:2022-06-19 15:48:18
JDK8发布以及多日了,今天,想体验一下,安装之后,试着导入原来的一个Project,结果报出两个红叉:
The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files
很不理解,原来好好的一个项目怎么就报错了呢,网上搜了一下也没找到解决方法,无奈,只有退回原来的JDK7,然后一切都恢复正常了,很是不解!于是贴出来让遇到同样问题的朋友迅速知道是怎么回事,也请知道这个问题原因的朋友不吝指教,帮忙解惑,感激不尽!

47 个解决方案

#1


是用的Eclipse吗?

网上给出的解决办法是:
It means: "A class that you use needs an other class that is not on the classpath." You should make sure to add the required jar to the classpath.

把需要的jar包,追加到classpath里就行

#2


jar包是加了,只是如果加JDK8的版本就报错,换成JDK7就没问题

#3


你的Jar包用的不是JDK8

#4


引用 3 楼 lanaichenglong 的回复:
你的Jar包用的不是JDK8

你所说的jar包是指的什么jar包?

#5


我也遇到同样问题

#6


代码贴出来看一下。。

#7


我也遇到了,我是个新手,搞了半天,在这里发现这个帖子帮了我

#8


need answer too

#9


应该是你安装jdk8 但是环境变量没配置吧  classPath 还是用的jdk7的jar吧

#10


JDK7我都没有用过,你真超前

#11


Eclipse貌似前几天才支持java8?

 Kepler 版本的只支持到7,前几天发布的Luna 才支持8.

#12


还在用jdk6的

#13


引用 12 楼 Menglinyang 的回复:
还在用jdk6的

jdk8我也只是拿来自己玩的,公司项目还是用的jdk7,6是有点太低了,有用到一个中间件必须jdk7

#14


引用 10 楼 xmt1139057136 的回复:
JDK7我都没有用过,你真超前

技术在更新,新特性在增加,新的还是更好用的

#15


用jdk8编译

#16


发现1.8的文件放的位置跟1.7的不一样,在重新配置下环境变量就好了

#17


我也碰到你这个问题了:
我是在做2维码的时候碰到这个问题了
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

是因为eclipse 对1.8的不支持所致,最起码我的是这样
然后我去eclipse 官网去查看,发现eclipse直到4.3.2 版本才完全对jdk1.8支持,引用:contain full support for Java™ 8. For Kepler SR2 (4.3.2) 
请到 官网查看 http://download.eclipse.org/eclipse/downloads/ 

看看能不能解决你的问题

#18


我也是这个问题,把jre8改为jre7就好了,你也可以试试

#19


引用 16 楼 qq805911956 的回复:
发现1.8的文件放的位置跟1.7的不一样,在重新配置下环境变量

Quote: 引用 16 楼 qq805911956 的回复:

发现1.8的文件放的位置跟1.7的不一样,在重新配置下环境变量就好了
怎么配置啊

#20


环境换成1.6的就没什么问题了啊

#21


环境换成1.6的就没什么问题了啊,但是怎么才能用1.8呢

#22


遇到同样问题,改成1.5就好了 JDK8之The type java.util.Map$Entry cannot be resolved

#23


我也遇到这个问题,原来是jdk8的问题,换回MyEclipse自带的jre1.6就好了

#24


十二月 31, 2014 9:19:44 上午 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_25\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_25/bin/client;C:/Program Files/Java/jre1.8.0_25/bin;C:/Program Files/Java/jre1.8.0_25/lib/i386;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\NetSarang;E:\app\lihong_tang\product\11.2.0\dbhome_1\bin;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\DMIX;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;D:\TortoiseSVN\bin;D:\Java\jdk1.6.0_11\bin;C:\Program Files\Windows Live\Shared;F:\tools\apache-maven-3.2.3-bin\apache-maven-3.2.3\bin;C:\Program Files\AMD\ATI.ACE\Core-Static;F:\tools\eclipse3.7indigo靛青版\eclipse;;.
十二月 31, 2014 9:19:45 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Exam' did not find a matching property.
十二月 31, 2014 9:19:45 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8111"]
十二月 31, 2014 9:19:45 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8119"]
十二月 31, 2014 9:19:45 上午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 753 ms
十二月 31, 2014 9:19:45 上午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
十二月 31, 2014 9:19:45 上午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.40
十二月 31, 2014 9:19:46 上午 org.apache.catalina.util.SessionIdGenerator createSecureRandom
信息: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [395] milliseconds.
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://struts.apache.org/tags-bean is already defined
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://struts.apache.org/tags-html is already defined
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://struts.apache.org/tags-logic is already defined
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://struts.apache.org/tags-nested is already defined
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://struts.apache.org/tags-tiles is already defined
十二月 31, 2014 9:19:47 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8111"]
十二月 31, 2014 9:19:47 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8119"]
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.Catalina start
信息: Server startup in 2163 ms
十二月 31, 2014 9:20:03 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [action] in context with path [/Exam] threw exception [Servlet execution threw an exception] with root cause
java.lang.Error: Unresolved compilation problem: 
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

#25


eclipse+tomcat7+jdk1.6
上面报错的方式我的解法方法是吧jre8换成6的就好了
选中项目-》右键-》java build path ->找到jre system library -》选择edit-》进入界面选择alternate jre ->在后面的installed jres..里选择jdk1.6的目录上的jre -》ok 之后 清楚 构建下就好了

#26


这个是不是到现在也没什么太好的解决办法.只有把8换成7或以下?

#27


果然jdk8出了问题,谢谢各位大大的解释

#28


果然是jdk8的问题,换回jdk1.6后,问题解决

非常感谢LZ

#29


很有用,换成1.6解决了

#30


我也遇到同样问题,虽然不知道具体原因,但是lz帮到了我

#31


该回复于2015-04-07 13:16:07被管理员删除

#32


换成jdk1.7.0_75

#33


刚刚遇到同样问题,看来是myeclipse和jdk版本不兼容出现的问题,我用的jdk8,后来把它改成myeclipse自带的jdk1.6就好了,具体我也是看别人的帖子: http://www.dataguru.cn/thread-333503-1-1.html

#34


到底是怎么处理的,我用的是Myeclipse10 jdk1.8,大神可以帮帮吗?

#35


真正的原因是 老版本的ecj (即Eclipse里面的java编译器)不兼容jdk8, 更新一下就好了

#36


引用 35 楼 wendal 的回复:
真正的原因是 老版本的ecj (即Eclipse里面的java编译器)不兼容jdk8, 更新一下就好了
 对,今天就是这么解决的

#37


我也遇到过这种毛病 后来没有找到就换回JDK1.7用了

#38


这个问题是jdk8出的,换个jdk7就没报错了,附带jdk7下载地址(http://pan.baidu.com/s/1sj0koH3)

#39


我用的是1.8和myEclipse8.5,然后导入别人的项目也是红叉,最后把项目使用的JRE调成自带的1.6就好了,不要选择外部的1.8.

#40


升级到tomcat8 就正常了

#41


谢谢,学习了

#42


引用 2 楼 rchm8519 的回复:
jar包是加了,只是如果加JDK8的版本就报错,换成JDK7就没问题



666

#43


楼主,我也遇到了这个问题,先来描述下问题:我的本地开发机器上最开始有一个JDk1.7的,同样环境变量和MyExclipse上配置的也是最开始也是1.7的,后来有下载了JDK1.8的exe安装文件,直接双击安装的,没有去环境变量配置1.8的,还是沿用旧的1.7的,然后就直接将MyExclipse上的JDK改成1.8的就出现了这个问题

#44


那么我的根本根本原因出在环境变量里面配置的JDK与MyExclipse上引用的JDK不一致,就可能出现这个问题,所以后来改成一致就可以了,这类问题属于JDK1.8的不完善,待优化。

#45


引用 11 楼 x19881216 的回复:
Eclipse貌似前几天才支持java8?

 Kepler 版本的只支持到7,前几天发布的Luna 才支持8.


11楼正解!是楼主使用的Eclipse版本不支持JDK8

#46


我也遇到了这个问题,有些包需要JKD8,安装后更改环境变量,eclipse还用1.7的就可以了

#47


编译版本和运行版本不一致

#1


是用的Eclipse吗?

网上给出的解决办法是:
It means: "A class that you use needs an other class that is not on the classpath." You should make sure to add the required jar to the classpath.

把需要的jar包,追加到classpath里就行

#2


jar包是加了,只是如果加JDK8的版本就报错,换成JDK7就没问题

#3


你的Jar包用的不是JDK8

#4


引用 3 楼 lanaichenglong 的回复:
你的Jar包用的不是JDK8

你所说的jar包是指的什么jar包?

#5


我也遇到同样问题

#6


代码贴出来看一下。。

#7


我也遇到了,我是个新手,搞了半天,在这里发现这个帖子帮了我

#8


need answer too

#9


应该是你安装jdk8 但是环境变量没配置吧  classPath 还是用的jdk7的jar吧

#10


JDK7我都没有用过,你真超前

#11


Eclipse貌似前几天才支持java8?

 Kepler 版本的只支持到7,前几天发布的Luna 才支持8.

#12


还在用jdk6的

#13


引用 12 楼 Menglinyang 的回复:
还在用jdk6的

jdk8我也只是拿来自己玩的,公司项目还是用的jdk7,6是有点太低了,有用到一个中间件必须jdk7

#14


引用 10 楼 xmt1139057136 的回复:
JDK7我都没有用过,你真超前

技术在更新,新特性在增加,新的还是更好用的

#15


用jdk8编译

#16


发现1.8的文件放的位置跟1.7的不一样,在重新配置下环境变量就好了

#17


我也碰到你这个问题了:
我是在做2维码的时候碰到这个问题了
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

是因为eclipse 对1.8的不支持所致,最起码我的是这样
然后我去eclipse 官网去查看,发现eclipse直到4.3.2 版本才完全对jdk1.8支持,引用:contain full support for Java™ 8. For Kepler SR2 (4.3.2) 
请到 官网查看 http://download.eclipse.org/eclipse/downloads/ 

看看能不能解决你的问题

#18


我也是这个问题,把jre8改为jre7就好了,你也可以试试

#19


引用 16 楼 qq805911956 的回复:
发现1.8的文件放的位置跟1.7的不一样,在重新配置下环境变量

Quote: 引用 16 楼 qq805911956 的回复:

发现1.8的文件放的位置跟1.7的不一样,在重新配置下环境变量就好了
怎么配置啊

#20


环境换成1.6的就没什么问题了啊

#21


环境换成1.6的就没什么问题了啊,但是怎么才能用1.8呢

#22


遇到同样问题,改成1.5就好了 JDK8之The type java.util.Map$Entry cannot be resolved

#23


我也遇到这个问题,原来是jdk8的问题,换回MyEclipse自带的jre1.6就好了

#24


十二月 31, 2014 9:19:44 上午 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_25\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_25/bin/client;C:/Program Files/Java/jre1.8.0_25/bin;C:/Program Files/Java/jre1.8.0_25/lib/i386;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\NetSarang;E:\app\lihong_tang\product\11.2.0\dbhome_1\bin;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\DMIX;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;D:\TortoiseSVN\bin;D:\Java\jdk1.6.0_11\bin;C:\Program Files\Windows Live\Shared;F:\tools\apache-maven-3.2.3-bin\apache-maven-3.2.3\bin;C:\Program Files\AMD\ATI.ACE\Core-Static;F:\tools\eclipse3.7indigo靛青版\eclipse;;.
十二月 31, 2014 9:19:45 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Exam' did not find a matching property.
十二月 31, 2014 9:19:45 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8111"]
十二月 31, 2014 9:19:45 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8119"]
十二月 31, 2014 9:19:45 上午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 753 ms
十二月 31, 2014 9:19:45 上午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
十二月 31, 2014 9:19:45 上午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.40
十二月 31, 2014 9:19:46 上午 org.apache.catalina.util.SessionIdGenerator createSecureRandom
信息: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [395] milliseconds.
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://struts.apache.org/tags-bean is already defined
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://struts.apache.org/tags-html is already defined
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://struts.apache.org/tags-logic is already defined
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://struts.apache.org/tags-nested is already defined
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.TaglibUriRule body
信息: TLD skipped. URI: http://struts.apache.org/tags-tiles is already defined
十二月 31, 2014 9:19:47 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8111"]
十二月 31, 2014 9:19:47 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8119"]
十二月 31, 2014 9:19:47 上午 org.apache.catalina.startup.Catalina start
信息: Server startup in 2163 ms
十二月 31, 2014 9:20:03 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [action] in context with path [/Exam] threw exception [Servlet execution threw an exception] with root cause
java.lang.Error: Unresolved compilation problem: 
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

#25


eclipse+tomcat7+jdk1.6
上面报错的方式我的解法方法是吧jre8换成6的就好了
选中项目-》右键-》java build path ->找到jre system library -》选择edit-》进入界面选择alternate jre ->在后面的installed jres..里选择jdk1.6的目录上的jre -》ok 之后 清楚 构建下就好了

#26


这个是不是到现在也没什么太好的解决办法.只有把8换成7或以下?

#27


果然jdk8出了问题,谢谢各位大大的解释

#28


果然是jdk8的问题,换回jdk1.6后,问题解决

非常感谢LZ

#29


很有用,换成1.6解决了

#30


我也遇到同样问题,虽然不知道具体原因,但是lz帮到了我

#31


该回复于2015-04-07 13:16:07被管理员删除

#32


换成jdk1.7.0_75

#33


刚刚遇到同样问题,看来是myeclipse和jdk版本不兼容出现的问题,我用的jdk8,后来把它改成myeclipse自带的jdk1.6就好了,具体我也是看别人的帖子: http://www.dataguru.cn/thread-333503-1-1.html

#34


到底是怎么处理的,我用的是Myeclipse10 jdk1.8,大神可以帮帮吗?

#35


真正的原因是 老版本的ecj (即Eclipse里面的java编译器)不兼容jdk8, 更新一下就好了

#36


引用 35 楼 wendal 的回复:
真正的原因是 老版本的ecj (即Eclipse里面的java编译器)不兼容jdk8, 更新一下就好了
 对,今天就是这么解决的

#37


我也遇到过这种毛病 后来没有找到就换回JDK1.7用了

#38


这个问题是jdk8出的,换个jdk7就没报错了,附带jdk7下载地址(http://pan.baidu.com/s/1sj0koH3)

#39


我用的是1.8和myEclipse8.5,然后导入别人的项目也是红叉,最后把项目使用的JRE调成自带的1.6就好了,不要选择外部的1.8.

#40


升级到tomcat8 就正常了

#41


谢谢,学习了

#42


引用 2 楼 rchm8519 的回复:
jar包是加了,只是如果加JDK8的版本就报错,换成JDK7就没问题



666

#43


楼主,我也遇到了这个问题,先来描述下问题:我的本地开发机器上最开始有一个JDk1.7的,同样环境变量和MyExclipse上配置的也是最开始也是1.7的,后来有下载了JDK1.8的exe安装文件,直接双击安装的,没有去环境变量配置1.8的,还是沿用旧的1.7的,然后就直接将MyExclipse上的JDK改成1.8的就出现了这个问题

#44


那么我的根本根本原因出在环境变量里面配置的JDK与MyExclipse上引用的JDK不一致,就可能出现这个问题,所以后来改成一致就可以了,这类问题属于JDK1.8的不完善,待优化。

#45


引用 11 楼 x19881216 的回复:
Eclipse貌似前几天才支持java8?

 Kepler 版本的只支持到7,前几天发布的Luna 才支持8.


11楼正解!是楼主使用的Eclipse版本不支持JDK8

#46


我也遇到了这个问题,有些包需要JKD8,安装后更改环境变量,eclipse还用1.7的就可以了

#47


编译版本和运行版本不一致