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

时间:2009-05-26 00:43:45

标签: java eclipse ide

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

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

有什么想法吗?

22 个答案:

答案 0 :(得分:1130)

在“Windows > Preferences > Java > Editor > Content Assist > Advanced

中尝试恢复默认选项

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

eclipse content assist setting

(来自Vadim中的blog post " Content Assist Duplicates in Eclipse (Mylyn)"
如果有重复的Mylyn条目,请取消选中其名称中不包含“(Mylyn)”的重复条目

Eclipse help page定义要恢复的默认列表:

  

选择'默认'内容辅助列表中包含的提案种类:

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

答案 1 :(得分:63)

我在这里添加了一个答案,以防其他人在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以查找违规类型。索引将被重建。

答案 2 :(得分:19)

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

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

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

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

enter image description here

答案 3 :(得分:18)

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

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

<强>更新

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

答案 4 :(得分:10)

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

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

答案 5 :(得分:9)

这些都不适合我。

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

答案 6 :(得分:5)

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

答案 7 :(得分:4)

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

答案 8 :(得分:4)

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

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

答案 9 :(得分:4)

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

  1. 右键单击项目(您正在处理的项目)
  2. 转到“属性”&gt; Java构建路径&gt; JRE系统库
  3. 点击右侧的编辑...
  4. 选择JRE 7

答案 10 :(得分:3)

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

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

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

  • 右键单击项目文件夹&gt;属性&gt; Gradle&gt;配置工作区设置&gt; Java&gt;编辑&gt;内容辅助&gt;高级
  • 检查“上方窗口中的Java提案。
  • 2x Apply&amp;关闭

答案 11 :(得分:2)

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

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

答案 12 :(得分:2)

一旦检查完配置并且完成仍然无效:

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

您是否在文件旁边看到了正确的图标?:

enter image description here

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

enter image description here

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

答案 13 :(得分:2)

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

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

谢谢, 汤姆

答案 14 :(得分:2)

另一个对我有用的解决方案是转到Java - &gt;外观 - &gt;键入过滤器并禁用所有enter image description here

答案 15 :(得分:2)

检查您是否过滤掉了Window&gt;中的许多选项。偏好&gt; Java&gt;外观&gt;类型过滤器

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

答案 16 :(得分:1)

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

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

答案 17 :(得分:1)

万一有人到了一个绝望的地方,什么都行不通......我们发现内容有助于缩小,所以没有显示任何建议,只有&#34;按Ctrl + Space为非Java .. &#34;可以看出来。 因此,只需拖动内容辅助的角落即可放大弹出窗口。

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

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

答案 18 :(得分:1)

如果在枚举中遇到此问题,或者使用匿名类初始化数组时,这是Eclipse中的一个已知错误。参见Eclipse content assist not working in enum constant parameter list

答案 19 :(得分:1)

自升级到Eclipse 2019-09以来,我遇到了这个问题。根据上面的一些建议,这对我有用。

我必须转到Eclipse->首选项-> Java->编辑器-> Content Assist->高级。

Java Editor/Content Assist Advanced

我发现,如果我打开任何键绑定提议,Java Non-Type,Java,Java(基于任务的)或Java Type提议,那么我就可以使用自动完成功能。如果将它们全部打开,那么不仅会完成自动完成工作,而且还会列出重复的方法。我正在猜测,但是我可能会使用Java类型建议。对于这四种类型的不同之处的任何澄清,将不胜感激。

答案 20 :(得分:0)

对于使用最新的3-19 Eclipse版本的用户:

氧气升级到 3-19 eclipse版本时,这只是发生在我身上,所以我认为自动完成功能在升级过程中未正确迁移。

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

答案 21 :(得分:0)

在Java Spring Boot项目上运行STS,这对我有效:

enter image description here