【问题标题】:Eclipse missing already imported required projectEclipse 缺少已导入的所需项目
【发布时间】:2014-04-16 13:57:05
【问题描述】:

我在eclipse中有3个java项目(A、B、C),其中C是A和B都需要的项目。每次启动eclipse都会报错

 Project 'A' is missing required Java project: 'C'
 Project 'B' is missing required Java project: 'C'

当我从 A 或 B 的构建路径中删除项目 C 并再次添加时,错误消失了。错误... cannot be resolved to a type 仅在我从构建路径中删除项目 C 时出现,并且从项目 A 或 B 对项目 C 中的源文件进行 F3-ing 工作,这意味着它确实找到了正确的源文件。

我的 .classpath 文件如下所示:

<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JCIFS"/>
    <classpathentry combineaccessrules="false" kind="src" path="/C"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

我的eclipse版本是Galileo,插件:Subclipse、CDT(所以没有Maven)。自动构建被选中。

有人知道我每次启动 eclipse 时如何避免重新添加项目吗?

【问题讨论】:

  • 一些问题(请编辑您的问题以回答它们):哪个版本的 Eclipse?你使用 Maven 插件吗?是否启用了“自动构建”(查看您的偏好)?

标签: java eclipse ubuntu


【解决方案1】:

试试这个:

  • 右键单击您的项目名称(A 或 B)并选择属性...
  • 选择 Java Build Path 和 Projects 选项卡,选中项目 C 作为 A 和 B 上的必需项目。
  • 选择“项目引用”选项并选中项目 C 作为 A 和 B 的项目引用。
  • 清洁和重建,只为疯狂!
  • 确保重启 eclipse 时项目 C 没有关闭。

【讨论】:

  • 我做了很多事情,所以我不确定是什么修复了它,但我认为项目参考有所不同。谢谢!
【解决方案2】:

我也见过这种情况,但有好几次都没有明确的模式。我相信这是 Eclipse 中的一个错误。

有时关闭和重新打开项目 A 会修复它。有时我必须删除并重新安装 Eclipse 才能修复它。

【讨论】:

  • 关闭和重新打开项目后,我需要执行清理工作
【解决方案3】:

您是否只是尝试清理工作区并进行完整构建?

【讨论】:

    【解决方案4】:

    如果项目关闭,通常会发生此错误。但是一旦关闭 C 就会出现错误——也就是说,在重新启动 Eclipse 之前很久。

    很难说是什么原因造成的。 Mabye 这是一个老错误,但我不记得在 3.5 / Galileo 中有什么特别的内容。

    试试这些:

    1. “清理...”并选择所有项目。这有帮助吗?
    2. 当您收到错误消息时,Eclipse 构建 C 是成功还是失败?
    3. 这是一个 Java 或 C/C++ 项目吗?也许这是 CDT 中的一个错误。
    4. 尝试使用 Eclipse 3.7。它与 3.5 非常兼容,但修复了许多错误。也许这也解决了你的问题。导出您的首选项,在某处解压 3.7(不理会 3.5),导入首选项。如果您想 100% 确定,请创建第二个工作区。

    【讨论】:

      【解决方案5】:

      我也有这个,我认为是因为资源过滤器。我试图hide .class files from the open resource dialogue。为了解决这个问题,我删除了我的资源过滤器并清理了项目 - 现在它似乎表现良好。

      【讨论】:

        【解决方案6】:

        这看起来像是 Windows 路径名问题。为什么你将你的项目命名为 A、B、C 而不是给它们正确的名称?

        <classpathentry combineaccessrules="false" kind="src" path="/C"/>
        

        我敢打赌 /C 被错误地解释为驱动器号,因此是您的问题。

        【讨论】:

        • 我认为,A、B 和 C 只是占位符,不能透露真实的项目名称。在公共网站上提问时,我也会这样做。
        • 正确,A,B,C代表真实项目。
        • 另外,我在linux上,所以windows路径不是问题
        猜你喜欢
        • 2014-01-17
        • 1970-01-01
        • 2011-05-23
        • 1970-01-01
        • 2020-11-26
        • 1970-01-01
        • 1970-01-01
        • 2018-04-12
        • 2019-02-07
        相关资源
        最近更新 更多