Eclipse/Java代码完成不正常

我已经下载、解压并安装了Eclipse 3.4.2和一些插件(值得注意的是,EPIC、Clearcase、quantiumdb、MisterQ)。

现在我发现当我编辑Java项目时,代码补全不起作用。如果我输入String.并按ctrl+空间,一个弹出窗口显示“No Default Proposals”,底部的状态栏显示“No completion available”。

什么好主意吗?

446596 次浏览

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

您在这个首选项屏幕上看到的数据类型的一个例子,但不一定是您当前拥有的数据。

eclipse content assist setting

(从瓦迪姆在这个博客文章“Eclipse中的内容辅助副本(Mylyn)”:
如果有重复Mylyn条目,取消选中名称中不包含“(Mylyn)”的重复条目)

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

选择“默认”内容辅助列表中包含的提案类型:

  • 其他Java提案,
  • SWT模板建议,
  • 模板的提议,
  • 类型的建议

如果你已经安装了谷歌工具栏的IE,可能你也会面临同样的问题。因为,工具栏捕获快捷键ctrl+空间

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

更好的检查方法是转到辅助不起作用的文件并注释那里的所有导入,而不是逐个添加导入并在每次导入时检查code-assist是否有效。您可以很容易地找到重复引用的类。

我在这里添加了一个答案,以防别人在谷歌上找到这个。相同的症状;不同的问题。对我来说,类型缓存已经损坏了。

从# EYZ0

  • 退出Eclipse
  • 进入workspace/.metadata/.plugins/org.eclipse.jdt.core
  • 删除*。index和savedIndexNames.txt
  • 重新启动Eclipse并搜索Ctrl+T以查找错误类型。索引将被重新构建。

对于那些运行Xfce +并激活IBus插件的用户,可能会出现键盘快捷键冲突。

更多信息请访问我的博客:http://peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html

# EYZ0:

正如@nhahtdh的评论所建议的那样,添加了一些更多的信息来直接回答:Xfce中的IBus插件默认使用Ctrl+空间快捷键来进行键盘布局切换。要更改它,请转到:选项并将其更改为您喜欢的任何其他选项。

我遇到了这个问题,花了几个小时试图解决这个问题。尝试按照上面不同答案中提到的步骤,我找到的解决方案与Mona建议的相同,但略有不同。试图对蒙娜的回答添加评论,但没有选择。 我的eclipse的问题是,类路径以某种方式被损坏,所有的罐子和依赖的项目都不见了。在从存储库中获取最新的.classpath后,它工作得很好

这些对我都没用。

我只在一节课上经历过这个问题。最后对我有用的是删除这个有问题的类并重新创建它。问题解决了…神秘感就没那么大了!

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

在包资源管理器中,右键单击文件并选择“Open With”。

检查您没有过滤掉窗口中的许多选项>首选项> Java >外观>类型过滤器

此列表中的项目将不会出现在快速修复,自动完成,或出现在其他不同的地方,如打开类型对话框。

我也面临这个问题,但它是以不同的方式解决的。

.我所遵循的步骤可能对其他人有帮助
  1. 右键单击项目(您正在进行的项目)
  2. 进入“属性> Java Build Path > JRE系统库”
  3. 单击Edit……在右边
  4. 选择JRE 7

另一个对我有效的解决方案是去Java—>外观—>类型过滤器,并禁用所有enter image description here

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

我必须到.m2目录删除不需要的lib版本+重新启动eclipse。

在我的案例中,智能感知只在一个项目中的几个类中消失了。事实证明,这是因为构建路径上缺少一个库(尽管它以前是有效的)。

因此,一定要检查Eclipse中的所有错误或问题,并尝试查找是否丢失了某个库

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

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

当从不同的目录打开文件时,只有JRE的补全工作。例如:java.完成,但是junit.没有。

一旦你检查了你的配置,完成仍然不能工作:

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

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

enter image description here

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

enter image description here

我张贴这个答案,因为我有一个故事与Maven webapp工件。默认情况下,Maven-WebApp不为资源创建文件夹,我把我的Java放到资源中,想了5分钟到底发生了什么……:)

如果有人来到这里,想要激活自动完成功能,请转到

# EYZ0

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

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

enter image description here

以防有人到了绝望的地步,什么都不管用…对我们来说,内容帮助不知何故缩小,所以没有显示任何建议,只有“按Ctrl+空格,非java…”可以看到。 因此,只需拖动内容辅助窗口的角落,就可以放大弹出窗口

我知道,很尴尬。希望能有所帮助。

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

也许这可以帮助其他遇到同样问题的人。

我的设置:别人做的旧Gradle项目(版本为Gradle 2.12),使用Gradle导入向导导入STS (Eclipse Oxygen.2(4.7.2))。

代码补全也没有工作(我仍然在Java文件中有空心的Js),但至少我通过这样做来完成代码补全:

  • 右键单击项目文件夹>属性> Gradle >配置工作区设置> Java >编辑器>内容辅助>高级
  • 在上面的窗口中检查“Java提案”。
  • 2x应用&关闭

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

当我从氧气 eclipse版本升级到3-19 eclipse版本时,就发生了这种情况,所以我假设在升级过程中自动完成功能没有正确迁移。

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

如果您在枚举中遇到这种情况,或者在使用匿名类初始化数组时遇到这种情况,那么这就是Eclipse中的一个已知错误。看到# EYZ0。

自从升级到Eclipse 2019-09后,我就遇到了这个问题。基于上面的一些建议,这对我来说是有效的。

我不得不去Eclipse ->首选项-> Java ->编辑器->内容辅助->高级。

Java Editor/Content Assist Advanced

我发现,如果我打开任何一个关键绑定建议,Java非类型,Java, Java(以任务为中心)或Java类型建议,那么我就可以使用自动完成。如果我把它们都打开,那么不仅自动完成工作,而且列出了重复的方法。我只是猜测,但我可能会使用Java类型建议。如果您能说明这四种类型有什么不同,我将不胜感激。

在Java Spring Boot项目上运行STS,以下是对我有用的:

enter image description here

对2021年9月的我来说,这是一个奇怪的Eclipse bug。我在类的注释中有一个多行字符串。这只会导致该类在尝试编写完整代码时失败(即使该类编译正常)。

我们可以根据我们的要求更改设置。

假设我们想要使java的建议作为最高优先级,我们需要做如下所示的更改。

# EYZ0比;# EYZ1比;# EYZ2比;# EYZ3比;# EYZ4祝辞# EYZ5

选择Java的建议,然后点击向上按钮

enter image description here