【问题标题】:Eclipse/Java code completion not workingEclipse/Java 代码完成不起作用
【发布时间】:2010-10-28 20:28:22
【问题描述】:

我已经下载、解压并设置了 Eclipse 3.4.2 和一些插件(noteable、EPIC、Clearcase、QuantumDB、MisterQ)。

现在我发现当我在编辑 Java 项目时,代码完成不起作用。如果我输入 String. 并按 ctrl+space 弹出窗口会显示“No Default Proposals”,底部的状态栏会显示“No completions available”。

有什么想法吗?

【问题讨论】:

标签: java eclipse ide


【解决方案1】:

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

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

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

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

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

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

【讨论】:

  • 不知道这在我的环境中是如何改变的——我当然没有这样做,但你的解决方案有效!谢谢。
  • 刚刚下载并全新安装了适用于 macOS 的 Eclipse 2020-12 (4.18),但缺少设置。谢谢,VonC,你让我开心!
  • 这让我发疯了好几年,我不得不捣碎 ^space 直到它循环回变量。我发誓我什么都没改变...
【解决方案2】:

我在这里添加一个答案,以防其他人在 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 中,所以它一定在这个问题期间被破坏了。
  • 等等,没关系。尝试您的方法后,CA 只运行一次,然后再次炸毁。啊。即使在重新创建整个工作区后问题仍然存在。这里似乎没有其他解决方案有效......
  • +1。注意:如果您在 lambda 表达式中尝试内容辅助,您的 Eclipse 版本可能无法很好地支持它。
【解决方案3】:

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

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

然后在Auto Activation部分填写Auto activation triggers for Java:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

【讨论】:

  • 如果代码库很大,这可能会使您的 Eclipse 变得非常缓慢。
  • 这对我有用。谢谢
【解决方案4】:

对于那些运行 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 快捷方式。
  • Cinnamon 桌面环境出现同样的问题。
【解决方案5】:

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

检查此问题的更好方法是转到辅助不起作用的文件并在其中注释所有导入,而不是逐个添加导入并检查代码辅助是否正常工作。您可以轻松找到该类有重复的引用。

【讨论】:

    【解决方案6】:

    这些都不适合我。

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

    【讨论】:

      【解决方案7】:

      另一个对我有用的解决方案是转到 Java--> Appearence --> 键入过滤器并禁用 all

      【讨论】:

        【解决方案8】:

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

        【讨论】:

          【解决方案9】:

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

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

          【讨论】:

            【解决方案10】:

            我遇到了这个问题,并花了几个小时试图找出问题所在。尝试按照上面不同答案中提到的步骤进行操作,我找到的解决方案与 Mona 建议的方法相同,但略有不同。试图添加作为对 Mona 答案的评论,但没有可用的选项。 我的 Eclipse 的问题是,类路径不知何故损坏了,所有的 jar 和依赖项目都丢失了。从存储库获取最新的 .classpath 后,它运行良好。

            【讨论】:

              【解决方案11】:

              检查您是否没有过滤掉 Window > Preferences > Java > Appearance > Type Filters 中的许多选项

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

              【讨论】:

                【解决方案12】:

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

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

                【讨论】:

                  【解决方案13】:

                  一旦您检查了配置但完成仍然无法正常工作:

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

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

                  它会告诉你 Eclipse 将如何处理文件:

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

                  【讨论】:

                    【解决方案14】:

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

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

                    代码补全也不起作用(我仍然在 Java 文件中有空心 Js),但至少我通过以下方式使代码补全工作:

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

                    【讨论】:

                      【解决方案15】:

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

                      我必须转到 Eclipse -> 首选项 -> Java -> 编辑器 -> 内容辅助 -> 高级。

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

                      【讨论】:

                        【解决方案16】:

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

                        所以一定要检查 Eclipse 中的所有错误或问题,并尝试查找是否可能缺少库

                        【讨论】:

                          【解决方案17】:

                          对于使用最新 3-19 eclipse build 的用户:

                          我刚刚从 Oxygen 升级到 3-19 eclipse 版本时发生了这种情况,所以我认为自动完成功能在升级过程中没有正确迁移。

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

                          【讨论】:

                          • 是的,我无法浏览 java 方法,单击浏览/打开声明不起作用。而且这种情况经常发生,java 类文件实际上已经变成了文本文件。所以我一直在删除工作区并导入 maven 项目,一分钟后重新投入使用。
                          【解决方案18】:

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

                          【讨论】:

                          • 我遇到了和 Robert Brown 完全相同的问题,这个解决方案非常适合这种情况。谢谢。
                          【解决方案19】:

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

                          【讨论】:

                            【解决方案20】:

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

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

                            【讨论】:

                              【解决方案21】:

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

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

                              【讨论】:

                                【解决方案22】:

                                以防万一有人到了无用的绝望点...我们碰巧内容辅助以某种方式缩小了,因此没有显示任何建议,只是“按 Ctrl+Space for non-Java...”可以可见。 因此,只需拖动内容辅助的一角即可放大弹出窗口。

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

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

                                【讨论】:

                                  【解决方案23】:

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

                                  【讨论】:

                                    【解决方案24】:

                                    对 2021 年 9 月的我来说,这是一个奇怪的 Eclipse 错误。我在课堂上的注释中有一个多行字符串。这会导致该特定类在尝试完成代码时失败(即使该类编译得很好)。

                                    【讨论】:

                                      【解决方案25】:

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

                                      假设我们要将java提案作为最高优先级,我们需要进行如下更改。

                                      Windows > 首选项 > Java > 编辑器 > 内容辅助 > 高级

                                      选择Java提案并点击up按钮

                                      【讨论】:

                                        猜你喜欢
                                        • 2018-04-06
                                        • 1970-01-01
                                        • 2011-12-26
                                        • 2013-03-13
                                        • 2014-05-08
                                        • 1970-01-01
                                        • 2021-05-04
                                        • 2014-10-20
                                        • 1970-01-01
                                        相关资源
                                        最近更新 更多