【问题标题】:java.util.Map$Entry class file not found找不到 java.util.Map$Entry 类文件
【发布时间】:2015-02-05 19:15:15
【问题描述】:

我最近将 Java 更新为 jre1.8.0_31,Eclipse 不再构建我的项目。它失败并显示找不到 java.util.Map$Entry 类文件的消息。

【问题讨论】:

  • 您使用的是哪个操作系统? JAVA_HOME 变量配置正确!?
  • 如果那门课真的不存在,我会很震惊
  • 您是否更新了项目构建路径以指向新的 JDK 安装?
  • 我的操作系统使用的是 Windows 7 Home Premium Service Pack 1。
  • 谁能告诉我通常应该在哪里找到 Map$Entry 类文件?

标签: java eclipse


【解决方案1】:

java.util.Map$Entry 是 JDK 中的标准类。在某些情况下,它位于JAVA_HOME 下方名为rt.jar 的文件中,但您永远不必自己添加它。

我很惊讶这是你唯一缺少的东西,应该还有很多其他的东西也缺少。

您应该验证您的 JDK 是否根据您的偏好设置正确,以及您的项目构建路径。

几乎可以肯定,您的 JDK 的位置发生了变化,需要通知 Eclipse。

同时清理您的项目(右键单击项目视图中的顶部文件夹,选择“清理”)。可能是一些陈旧的文件。

实际上,在查看您的问题时想到最后一件事,您说您更新了 JRE。这与 JDK 不同。你也应该安装1.8 JDK

【讨论】:

  • 我确保 JDK 和 JRE 都是最新的。我查看了 Eclipse 中构建路径指向的 JRE 系统库,特别是我寻找了 java.util.Map$Entry.class,但它似乎不存在。出于好奇,类名 Map$Entry 是特殊的,因为其中有 $ 符号——不是非法的,但并不常见。我仍然缺少一些东西,但是您的 cmets 很有帮助。
  • $ 表示它是一个内部类。
  • 感谢您对 $ 标点符号的澄清。考虑到这一点,我使用 Eclipse 的 Project Explorer 再次查找了 rt.jar 中的 java.util.Map$Entry 类。在资源树中有一个 java.util.Map.Entry 条目作为 java.util.Map 的子元素,但该条目旁边显示一个问号图标。我认为这意味着缺少资源(Eclipse 帮助对回答这个问题没有帮助)。
  • 我怀疑您的 JDK 可能以某种方式混淆了。如果让我们说 Eclipse 仍在使用 1.7 的 javac,假设,针对 1.8 rt.jar,这是我希望看到的那种东西......
  • 当我升级到 Eclipse Luna 后,这个问题显然得到了解决。感谢大家对此的帮助。
【解决方案2】:

我遇到了同样的问题,下面的解决方案对我有用

在父 pom 文件中添加以下依赖项

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.7</version> <!-- 1.5 dint work for me -->
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
</plugin>           
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.6</version>
</plugin>   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    相关资源
    最近更新 更多