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


594

我已经下载,解压缩并使用一些插件(值得注意的,EPIC,Clearcase,QuantumDB,MisterQ)设置了Eclipse 3.4.2。

现在,我在编辑Java项目时发现代码完成无法正常工作。如果我键入String.并按ctrl+ space,则弹出窗口将显示“无默认提案”,底部的状态栏将显示“无可用完成”。

有任何想法吗?


1
对于那些试图在Ubuntu上修复此问题的人,[这里是答案] [1]。[1]:askubuntu.com/questions/243639/...
宪法

Answers:


1245

尝试还原Windows > Preferences > Java > Editor > Content Assist > Advanced”中的默认选项

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

蚀内容辅助设置

(来自Vadim,该博客文章“ Eclipse中的Content Assist Duplicates(Mylyn)”
如果有重复的Mylyn条目,请取消选中(Mylyn)名称中不包含“ ” 的重复条目)

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

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

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

3
不知道在我的环境中如何更改-我当然没有这样做,但是您的解决方案有效!谢谢。
pstanton '19

71

如果有人在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作为冒犯类型。索引将被重建。

+1,这对我有用。之前,我也遭受了Eclipse的困扰,以为我的项目在1.5中,尽管所有选择都相反,所以在此问题中它一定已损坏。
菲利普·金

3
等等,没关系。在尝试了您的方法之后,CA只能工作一次,然后再次崩溃。啊。即使重新创建了整个工作区,问题仍然存在。这里似乎没有其他解决方案可行……
Philip Guin

2
+1。注意:如果您尝试在lambda表达式中使用内容辅助,那么您的Eclipse版本可能无法很好地支持它。
Bludwarf

工作得很好。谢谢!
Modo

27

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

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

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

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

在此处输入图片说明


使用大型代码库可能会使您的日食变得非常慢。
J-ho

19

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

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

更新

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


3
如果您将来无法使用博客,请在此处包括您博客的基本部分。
nhahtdh

2
中的同样问题LXDE。转到Preferences-> Keyboard Input并删除Next input method快捷方式。
Kshitiz Sharma 2014年

1
肉桂桌面环境也会出现相同的问题。
Akkusativobjekt

11

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

最好的检查方法是转到没有帮助的文件并在其中注释所有导入,而不是逐个添加导入并在每次导入中检查代码助手是否起作用。您可以轻松地找到具有重复引用的类。


9

这些都不对我有用。

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


5

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


5

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

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


4

我遇到了这个问题,花了数小时试图找出问题所在。尝试按照上述不同答案中提到的步骤进行操作,我发现的解决方案与Mona建议的用法相同,但略有不同。试图添加作为对Mona答案的注释,但没有可用的选项。我的日食的问题是,类路径以某种方式损坏了,并且所有jar和相关项目都丢失了。从存储库中获取最新的.classpath后,它工作正常。


4

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

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

4

完成配置检查后,完成工作仍无法进行:

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

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

在此处输入图片说明

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

在此处输入图片说明

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


3

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

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


3

对我有用的另一个解决方案是转到Java->外观->类型过滤器并禁用所有在此处输入图片说明


3

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

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

代码完成也不起作用(并且我在Java文件中仍然有空心的Js),但是至少我可以通过以下方式使代码完成工作:

  • 右键单击项目文件夹>属性> Gradle>配置工作区设置> Java>编辑器> Content Assist>高级
  • 在上方窗口中选中“ Java建议”。
  • 2x申请并关闭

2

就我而言,Intellisense仅在一个项目的几节课中消失了。事实证明,这是由于构建路径上缺少库(尽管以前可以运行)。

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


2

我遇到了这个问题,最终导致我使用文本编辑器而不是Java编辑器打开文件。

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

谢谢汤姆


声誉块基本上就是这样,人们除了拥有更多东西外,还有其他理由获得更多东西。由于它还可以衡量您在社区中的参与度和尊敬程度(即声誉),因此,随着获得更多声誉,您将获得更多特权。您可能想浏览一下该游览,以获取有关该站点如何工作的更多说明:stackoverflow.com/tour
Amndeep7

这实际上只是一条评论,您提到的答案已经涵盖了文本编辑器问题。我了解您是否要删除它并失去业障。
Noumenon

1

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

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


1

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

从其他目录打开文件时,仅JRE的完成有效。例如:java.完成但junit.不完成。


1

以防万一有人陷入绝境而无济于事……我们偶然发现,内容的帮助以某种方式缩小了,因此没有显示任何建议,只能看到“按Ctrl + Space for non-Java ...”。因此,只需拖动内容辅助功能的角以扩大弹出窗口即可。

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

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


1

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

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

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


是的,对我来说我无法浏览java方法,请单击“浏览/打开”声明不起作用。而且这种情况经常发生,Java类文件实际上已经变成了文本文件。因此,我一直删除工作区并导入Maven项目,然后在一分钟内将其重新投入使用。
signonsridhar


0

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

我必须去Eclipse-> Preferences-> Java-> Editor-> Content Assist-> Advanced。

Java编辑器/内容辅助高级

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


0

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

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.