【问题标题】:Eclipse is not compiling while programming and auto-complete doesn't workEclipse 在编程时未编译,自动完成功能不起作用
【发布时间】:2015-05-03 20:43:02
【问题描述】:

我为 Eclipse 安装了一个新插件(名为 AgentZero)。 我使用 MercurialEclipse 导入了一个项目,导入没问题。 现在,在对这个项目进行编程时,没有编译。 此外,没有自动完成功能。当我尝试使用自动完成时,我收到以下消息: “此编译单元不在 Java 项目的构建路径上”。 之后,我收到此消息: “来自‘org.eclipse.jdt.ui’插件的‘org.eclipse.ui.JavaAllCompletionProposalComputer’提案计算机未正常完成。扩展从‘computeCompletionProposals()’操作返回的时间过长。为了避免这样消息,禁用 'org.eclipse.jdt.ui' 插件或禁用内容辅助首选项页面中的 'Java Proposals' 类别。”

所有其他项目都很好。 我能做些什么? 谢谢

【问题讨论】:

    标签: java eclipse autocomplete mercurialeclipse


    【解决方案1】:

    您需要检查导入是否已将项目正确配置为 Java 项目。

    它是一个 Java 项目吗?

    • 项目图标上是否有“J”覆盖?
    • 在项目的属性对话框中是否有 Java Build Path 和 Java Compiler 之类的页面?
    • 在 Builders 属性页上,是否显示“Java Builder”并且该条目是否被选中?

    源文件夹是否配置正确?

    • 检查项目属性中的Java Build Path > Source
    • 确保没有不需要的包含/排除过滤器。

    如果其中任何一个缺失或有错误,则 JDT 缺乏建议任何代码完成的上下文 - 因此您会看到错误对话框。

    我无法就 AgentZero 提供建议,您也没有具体说明此插件与问题的关系。

    如果上述方法不能解决问题,您应该在错误日志中查找最近的条目。

    编辑:

    如果该项目确实没有正确配置为 Java 项目,那么了解您是如何陷入这种情况的可能会很有趣。例如,如果您只是在项目导入期间忘记选择一个选项,那么重新开始可能是最干净的选项。如果,OTOH,导入工具未能执行它应该执行的操作,您可能需要报告一个错误(在这种情况下是针对 MercurialEclipse)。

    如果问题无法通过重新导入来解决,对项目配置文件进行一些仔细的修改可能会让您重回正轨。在这种情况下,我建议创建一个全新的纯 Java 项目,并使用创建的配置作为修复的参考。

    为此,您应该知道这些文件的用途(默认情况下,由于“.* 资源”过滤器,所有这些文件都隐藏在 Package Explorer 中):

    .project

    此文件应将 Java 特性 附加到项目中。这就是 Eclipse 将项目识别为 Java 项目的方式。此外,.project 声明了所有自动调用的 builders。添加自然和生成器(如果不存在)是一种安全操作,可能已经解决了您的问题。在项目属性对话框中检查结果。

    .classpath

    这里 Eclipse 存储您在 Java Build Path 属性页上配置的所有内容。由于该文件的内容很大程度上取决于您如何管理依赖项(例如,使用 Maven?),因此无法给出一般性建议。如果可能,请使用属性对话框而不是手动编辑。

    .settings/org.eclipse.jdt.core.prefs

    JDT 在这里存储所有进一步的配置选项,例如编译器选项。

    【讨论】:

    • 谢谢你,你提到的关于这个项目的前三件事是正确的。项目属性中没有 Java Build 路径。您对如何解决它有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 2014-03-11
    • 2012-07-09
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    相关资源
    最近更新 更多