无法解析java.util.Comparator类型

时间:2015-08-12 04:50:30

标签: java

The type java.util.Comparator cannot be resolved. It is indirectly referenced from required .class files

我最近安装了Java 8.在执行应用程序时,我得到了上面提到的错误,请你帮帮我。

我正在使用:

  1. Java - jdk1.8.0_51
  2. Tomcat - apache-tomcat-5.5.26

7 个答案:

答案 0 :(得分:3)

假设您正在使用某些IDE,例如Eclipse。当您使用带IDE的jdk 1.8时,需要更新IDE以支持1.8版。

您使用新的jdk功能并不重要,但编译器必须加载新的JRE文件才能编译您的项目。

答案 1 :(得分:2)

我也遇到了同样的错误,并尝试了许多方法来修复它,但最终的工作非常简单:原来,我只是在使用不支持Java的“ Compliance Level”设置的Eclipse的较早版本。和我的JRE一样高。我只是升级到了新版本,问题就消失了。

据我对“合规性级别”的了解,这是您的程序应使用的Java版本。我从网上阅读的东西中学到了很多。但是其他解决方案没有提到的是,您的IDE必须能够设置为与JRE一样高的级别。就我而言,我使用的是JRE 1.8,但是我的旧IDE支持的最高合规性级别是1.6。

IMO,Eclipse应该将这种情况标记为错误。但事实是,我浪费了两个晚上试图解决这个问题。

答案 2 :(得分:1)

如果您使用的是IntelliJ,请转到:

File/Settings/Build, Execution, Deployment/Compiler/Java Compiler

并确保“使用编译器”和“项目字节码版本”具有正确的配置。

答案 3 :(得分:0)

您的项目构建路径可能是指jre而不是JDK。

转到构建路径。 (在eclipse中右键单击并选择构建路径)。 转到您的库并用jdk替换jre。

答案 4 :(得分:0)

pom.xml版本是1.6? 如果是这样,你可以将jdk1.8替换为jdk1.6,将环境变量替换为jdk1.6。

答案 5 :(得分:0)

发生了同样奇怪的问题。事实证明,错误的jdk版本在JAVA_HOME

答案 6 :(得分:0)

您在这里遇到了同样的问题,但是当我看到您的问题时,我就解决了。问题是您没有使用旧版本,因为新版本引用不匹配。这个错误会来。
解决方法:
1.将您的Java版本更改为old。(在我的情况下,我必须更改为7)
2.以这种方式更新每个与Java 8兼容的libray和jar文件,它将引用Java而不是类文件

这是我的问题中环境变量的图像
enter image description here