我已经下载、解压缩并设置了 Eclipse 3.4.2 和一些插件(值得注意的、EPIC、Clearcase、QuantumDB、MisterQ)。
现在我发现当我编辑 Java 项目时,代码完成不起作用。如果我输入 String.
并按 ctrl+space 弹出窗口显示“无默认建议”,底部的状态栏显示“没有可用的完成”。
有任何想法吗?
尝试在“Windows > Preferences > Java > Editor > Content Assist > Advanced
”中恢复默认选项
您在此首选项屏幕中看到的数据类型示例,但不一定是您当前拥有的数据。
https://i.stack.imgur.com/bkZLv.jpg
(来自此 blog post " Content Assist Duplicates in Eclipse (Mylyn)" 中的 Vadim:
如果有重复的 Mylyn 条目,请取消选中名称中不包含“(Mylyn)
”的重复条目)
Eclipse help page 定义要恢复的默认列表:
选择“默认”内容辅助列表中包含的提案类型:其他 Java 提案、SWT 模板提案、模板提案、类型提案
我在这里添加一个答案,以防其他人在 Google 上找到它。相同的症状;不同的问题。对我来说,类型缓存已经损坏。
来自http://mschrag.blogspot.co.nz/2009/01/open-type-cant-find-your-class.html
退出 Eclipse
转到工作区/.metadata/.plugins/org.eclipse.jdt.core
删除 *.index 和 savedIndexNames.txt
重新启动 Eclipse 并在 Ctrl+T 中搜索有问题的类型。索引将被重建。
如果有人来这里并想激活自动完成功能,请转到
Preferences -> Java -> Editor -> Content Assist.
然后在自动激活部分填写 Java 的自动激活触发器:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._
https://i.stack.imgur.com/d4vOQ.png
对于那些运行 Xfce + 并激活了 IBus 插件的用户,可能存在键盘快捷键冲突。
在我的博客上查看更多信息:http://peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html
更新:
正如@nhahtdh 的评论所建议的那样,添加更多信息以直接回答:Xfce 中的 IBus 插件默认使用 Ctrl+Space 快捷键进行键盘布局切换。要更改它,请转到:选项并将其更改为您喜欢的任何其他内容。
LXDE
中的同样问题。转到 Preferences
-> Keyboard Input
并删除 Next input method
快捷方式。
检查项目的库。可能是您包含了两个这样的 jar 文件,其中相同的类可用,或者说代码中的一个类可以在两个 jar 文件中引用。在这种情况下,eclipse 也会停止辅助代码,因为它完全被混淆了。
更好的检查方法是转到辅助不起作用的文件并在其中注释所有导入,而不是逐个添加导入并在每次导入时检查代码辅助是否正常工作。您可以轻松找到具有重复引用的类.
这些都不适合我。
我只在一次特定的课程中遇到过这个问题。最终对我有用的是删除有问题的类并重新创建它。问题解决了……神秘没那么多!
https://i.stack.imgur.com/HrfDh.png
如果您安装了 Google Toolbar for IE,可能会遇到同样的问题。因为,工具栏捕获了快捷键 ctrl+Space。
我遇到了这个问题,就像@Marc 一样,只在一个特定的课程上。我发现我需要指定 Open With = Java Editor。作为一个 Eclipse 新手,我什至没有意识到我只是在使用纯文本编辑器。
在包资源管理器中,右键单击该文件并选择“打开方式”。
我遇到了这个问题,并花了几个小时试图找出问题所在。尝试按照上面不同答案中提到的步骤进行操作,我找到的解决方案与 Mona 建议的方法相同,但略有不同。试图添加作为对 Mona 答案的评论,但没有可用的选项。我的 Eclipse 的问题是,类路径不知何故损坏了,所有的 jar 和依赖项目都丢失了。从存储库中获取最新的 .classpath 后,它运行良好。
检查您是否没有过滤掉 Window > Preferences > Java > Appearance > Type Filters 中的许多选项
此列表中的项目不会出现在快速修复中,不会自动完成,也不会出现在其他不同的地方,例如“打开类型”对话框。
我也面临这个问题,但它以不同的方式解决。我遵循的步骤可能对其他人有帮助。
右键单击项目(您正在处理的项目)转到 Properties > Java Build Path > JRE System Library 单击右侧的 Edit... 选择 JRE 7
一旦您检查了配置并且完成仍然无法正常工作:
确保你有正确的目录结构。
您看到文件旁边的正确图标了吗?:
https://i.stack.imgur.com/vGNoP.png
它将告诉您 Eclipse 将如何处理该文件:
https://i.stack.imgur.com/hHHgf.png
我发布了这个答案,因为我与 Maven webapp 工件有过这个故事。默认情况下,Maven-WebApp 不会为源创建文件夹,我将我的 Java 放入资源中,想知道发生了什么 5 分钟...... :)
也许这可以帮助遇到同样问题的其他人。
我的设置:由其他人制作的旧 Gradle 项目(版本 Gradle 2.12),使用 Gradle 导入向导导入 STS(Eclipse Oxygen.2 (4.7.2))。
代码完成也不起作用(我仍然在 Java 文件中有空 Js),但至少我通过以下方式使代码完成工作:
右键单击项目文件夹 > 属性 > Gradle > 配置工作区设置 > Java > 编辑器 > 内容辅助 > 高级
检查上方窗口中的“Java 提案”。
2x 申请并关闭
自从升级到 Eclipse 2019-09 以来,我遇到了这个问题。根据上面的一些建议,这对我有用。
我必须去 Eclipse -> Preferences -> Java -> Editor -> Content Assist -> Advanced。
https://i.stack.imgur.com/f8UCl.png
我发现如果我打开任何键绑定建议,Java Non-Type、Java、Java(Task-Focused)或 Java Type 建议,那么我就可以使用自动完成。如果我将它们全部打开,那么不仅会自动完成工作,而且还会列出重复的方法。我猜,但我可能会使用 Java 类型建议。任何澄清这四种类型的不同之处将不胜感激。
在 Java Spring Boot 项目上运行 STS,这对我有用:
https://i.stack.imgur.com/OV89f.jpg
就我而言,Intellisense 只在一个项目的几个课程中消失了。原来这是因为构建路径上缺少一个库(尽管它以前工作过)。
所以一定要检查 Eclipse 中的所有错误或问题,并尝试查找是否可能缺少库
对于那些使用最新的 3-19 eclipse build 的人:
我只是在从 Oxygen 升级到 3-19 eclipse 版本时发生这种情况,所以我假设在升级过程中自动完成功能没有正确迁移。
对我有用的唯一解决方案是创建一个新的 eclipse 工作区,并将项目导入其中。这可能需要几分钟,但值得 - 与花在其他解决方案上的时间相比......
我遇到了这个问题,最终我是用文本编辑器而不是 java 编辑器打开文件。
对我来说,问题是同一个库的多个版本之间的冲突。 Eclipse 辅助使用的是比 maven 更旧的版本。
我不得不去.m2目录并删除不需要的lib版本+重新启动eclipse。
编辑不属于项目目录的文件时,我在 Eclipse Neon 上遇到问题。当我将相同的文件复制到项目根目录时,甚至没有复制到 src 目录,完成开始工作。
当文件从不同的目录打开时,只有 JRE 的补全有效。例如:java.
完成,但 junit.
没有。
以防万一有人到了绝望的地步,没有任何效果......我们碰巧内容辅助以某种方式缩小,所以没有显示任何建议,只是“按Ctrl + Space for non-Java......”可以看到。因此,只需拖动内容辅助的一角即可放大弹出窗口。
我知道,尴尬。希望能帮助到你。
注意:这是一个使用 Eclipse Oxygen 的带有 Xfce4 的 Ubuntu 服务器。
如果您在枚举中遇到这种情况,或者在使用匿名类初始化数组时,这是 Eclipse 中的一个已知错误。请参阅Eclipse content assist not working in enum constant parameter list。
我们可以根据需要更改设置。
假设我们要将 java 提案作为最高优先级,我们需要进行如下更改。
Windows > 首选项 > Java > 编辑器 > 内容辅助 > 高级
选择 Java 提案并单击向上按钮
https://i.stack.imgur.com/sDn9x.jpg
对 2021 年 9 月的我来说,这是一个奇怪的 Eclipse 错误。我的班级的注释中有一个多行字符串。当尝试完成代码时,这会导致该特定类失败(即使该类编译得很好)。