【问题标题】:The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files [duplicate]java.util.Map$Entry 类型无法解析。它是从所需的 .class 文件中间接引用的[重复]
【发布时间】:2014-07-29 10:09:30
【问题描述】:

我正在 Eclipse 上编写一个简单的 Java 程序。

import java.util.HashMap;

public class Demo {
    public static void main(String[] args) {
        HashMap<String, String> hash = new HashMap();
    }
}

上述程序产生以下错误。

  1. 项目未构建,因为它的构建路径不完整。找不到 java.util.Map$Entry 的类文件。修复构建路径,然后尝试构建此项目。
  2. 无法解析类型 java.util.Map$Entry。它是从所需的 .class 文件中间接引用的。

我几乎在互联网上到处搜索,但我无法纠正这个问题。

我已经安装了 Java SE 8u5 (JDK) (http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp)

  1. Windows -> 首选项 -> 已安装的 JRE 显示

a) jdk C:\Program Files\Java\jdk

  1. 项目 -> 构建路径 -> 库显示

a) JRE 系统库(jdk)

b) JRE 系统库 (jre8)

请有人帮助我。

编辑:将 Eclipse 版本从 Helios 更改为 Juno 解决了问题!

【问题讨论】:

  • 你试过重启eclipse吗?我对java.lang.Object 有类似的错误,并且重新启动有帮助。
  • 是的,我尝试重新启动 Eclipse。我什至重新启动了我的笔记本电脑。它没有消除这些错误。
  • 您使用的是哪个版本的 Eclipse?发布版本不支持 Java 8 - 您需要 patched version of KeplerLuna developer build
  • 我正在使用 Eclipse Helios。这会是个问题吗?
  • 感谢 McDowell,我将 Eclipse 版本更改为 Juno,现在可以使用了!

标签: java eclipse hashmap libraries


【解决方案1】:

我发现 Eclipse 偶尔会忘记存在内置类(包括 ObjectString)。我解决它们的方法是:

  • 在“项目”菜单上,关闭“自动构建”
  • 退出并重新启动 Eclipse
  • 在“项目”菜单上,选择“清理...”并清理所有项目
  • 重新打开“自动构建”并让它重新构建所有内容。

这似乎让 Eclipse 忘记了它所拥有的关于可用类的任何不正确的缓存信息。

【讨论】:

  • 我认为这更多地与 eclipse 版本有关。因此,如果我们可以更改 Java 和 Jre 8 最支持的版本,就可以解决这个问题。
  • 这也发生在 Eclipse IBM RAD (Rational) 中,使用 jdk8,解决方案是使用 jdk7
  • @EnriqueSanMartín - 你拯救了我的一天。我知道问题出在 RAD 中的 JRE,但我一直在使用不同版本的 JRE8。感谢您的提示。
  • 谢谢。在 2020-12 版本的 Eclipse (jdk 11.0.8) 中工作的步骤。
猜你喜欢
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
  • 2017-10-05
  • 2013-05-14
  • 2017-02-26
  • 2016-10-31
相关资源
最近更新 更多