Eclipse / Java代码完成无法正常工作

Eclipse/Java code completion not working

我已经下载,解压缩并使用一些插件(可记录,EPIC,Clearcase,QuantumDB,MisterQ)设置Eclipse 3.4.2。

现在我发现当我编辑Java项目时,代码完成无法正常工作。 如果我输入String.并按ctrl + space,弹出窗口显示"No Default Proposals",底部的状态栏显示"No completions available"。

有任何想法吗?


尝试恢复"Windows > Preferences > Java > Editor > Content Assist > Advanced"中的默认选项

您在此首选项屏幕中看到的数据类型的示例,但不一定是您当前拥有的数据。

eclipse content assist setting

(来自Vadim的博客文章"内容辅助Eclipse中的重复项(Mylyn)":
如果有重复的Mylyn条目,请取消选中其名称中不包含"(Mylyn)"的重复条目

Eclipse帮助页面定义了要恢复的默认列表:

Select the proposal kinds contained in the 'default' content assist list:

  • Other Java Proposals,
  • SWT Template Proposals,
  • Template Proposals,
  • Type Proposals

我在这里添加了一个答案,以防其他人在Google上发现这个问题。相同的症状;不同的问题。对我来说,类型缓存已经腐败。

来自http://mschrag.blogspot.co.nz/2009/01/open-type-cant-find-your-class.html

  • 退出Eclipse
  • 转到workspace / .metadata / .plugins / org.eclipse.jdt.core
  • 删除* .index和savedIndexNames.txt
  • 重新启动Eclipse并搜索Ctrl + T以获取有问题的类型。索引将被重建。


如果有人来到这里并希望激活自动完成功能,请转到

Preferences -> Java -> Editor -> Content Assist.

然后在"自动激活"部分中填写Java的自动激活触发器:

1
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

enter image description here


对于那些运行Xfce +并激活IBus插件的人来说,可能存在键盘快捷键冲突。

在我的博客上查看更多信息:http://peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html

更新:

根据@ nhahtdh的评论建议,添加更多信息直接回答:Xfce中的IBus插件默认使用Ctrl + Space快捷键进行键盘布局切换。要更改它,请转到:选项并将其更改为您喜欢的任何其他内容。


检查项目的lib。可能是您包含两个这样的jar文件,其中相同的类可用,或者说代码中的一个类可以在两个jar文件中引用。在这种情况下,eclipse也会停止协助代码,因为它完全混淆了。

检查这个的更好方法是转到辅助不起作用的文件并在那里注释所有导入,而不是逐个添加导入,并在代码辅助工作与否时检查每次导入。您可以轻松找到具有重复参考的类。


这些都不适合我。

我只在一次特定课程中遇到过这个问题。最终对我有用的是删除有问题的类并重新创建它。问题解决了......神秘不是那么多!


如果您已经为IE安装了Google工具栏,可能会遇到同样的问题。因为,工具栏捕获了快捷键ctrl + Space。


我也面临这个问题,但它以不同的方式解决。
我遵循的步骤可能对其他人有所帮助。

  • 右键单击项目(您正在处理的项目)
  • 转到"属性">"Java构建路径">"JRE系统库"
  • 单击右侧的"编辑..."
  • 选择JRE 7

  • 我遇到了这个问题,花了好几个小时试图找出问题所在。试图按照上面不同答案中提到的步骤,我找到的解决方案与Mona建议的解决方案相同,但略有不同。试图在Mona的答案中添加评论,但没有选项可用。
    我的日食问题是,类路径以某种方式被破坏,所有的罐子和依赖项目都丢失了。从存储库中获取最新的.classpath后,它工作正常。


    我遇到了这个问题,就像@Marc一样,只针对特定的类。我发现我需要指定Open With = Java Editor。作为一个Eclipse新手,我甚至没有意识到我只是使用普通的编辑器。

    在包资源管理器中,右键单击该文件并选择"打开方式"。


    也许这有助于遇到同样问题的其他人。

    我的设置:由其他人制作的旧Gradle项目(版本Gradle 2.12),使用Gradle导入向导导入STS(Eclipse Oxygen.2(4.7.2))。

    代码完成也不起作用(我在Java文件中仍然有空洞的Js),但至少我通过以下方式完成了代码完成:

    • 右键单击项目文件夹>属性> Gradle>配置工作区设置> Java>编辑器>内容辅助>高级
    • 检查上部窗口中的"Java Proposals"。
    • 2x申请并关闭

    完成配置检查后,完成仍然无效:

    • 确保您拥有正确的目录结构。

    你在文件旁边看到了正确的图标吗?:

    enter image description here

    它将告诉您Eclipse将如何处理该文件:

    enter image description here

    我发布了这个答案,因为我有Maven webapp工件的故事。默认情况下,Maven-WebApp不会为源创建文件夹,我将Java放入资源中,想知道5分钟发生了什么...... :)


    另一个对我有用的解决方案是转到Java - > Appearence - > Type Filters并禁用所有enter image description here


    就我而言,Intellisense只在一个项目的几个班级中消失了。事实证明这是因为构建路径上缺少库(虽然它以前工作)。

    因此,请务必检查Eclipse中的所有错误或问题,并尝试查找是否可能缺少库


    我碰到了这个,结果是我用文本编辑器而不是java编辑器打开文件。

    我想对https://stackoverflow.com/users/607470/elroy-flynn发表评论
    响应,但添加评论仅在我评级为50后才有效?不确定WTF是......

    谢谢,
    汤姆


    检查您是否在窗口>首选项> Java>外观>类型过滤器中过滤掉了许多选项

    此列表中的项目不会出现在快速修复,自动完成或出现在其他各种位置,如"打开类型"对话框中。


    对于那些使用最新的3-19 eclipse版本的人:

    当从Oxygen升级到3-19 eclipse版本时,我发生了这种情况,因此我认为在升级过程中自动完成功能无法正确迁移。

    对我有用的唯一解决方案是创建一个新的eclipse工作区,并将项目导入其中。可能需要几分钟,但值得 - 与其他解决方案所花费的时间相比......


    对我来说,问题是同一个库的几个版本之间存在冲突。 Eclipse辅助使用的是比maven更旧的版本。

    我不得不去.m2目录并删除不需要的lib版本+重启eclipse。


    编辑不属于项目目录的文件时,我在Eclipse Neon上遇到问题。当我将相同的文件复制到项目根目录,甚至没有复制到src目录时,完成开始工作。

    从其他目录打开文件时,只有JRE完成才能工作。例如:java.完成,但junit.不完成。


    万一有人到了一个绝望的地方,没有任何作用......我们发现内容有助于缩小,所以没有显示任何建议,只能看到"按下Ctrl + Space for non-Java ......"。
    因此,只需拖动内容辅助的角落来放大弹出窗口即可。

    我知道,很尴尬。希望能帮助到你。

    注意:这是一个使用Eclipse Oxygen的Xfce4的Ubuntu服务器。