ChatGPT解决这个技术问题 Extra ChatGPT

Eclipse/Java 代码完成不起作用

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

现在我发现当我编辑 Java 项目时,代码完成不起作用。如果我输入 String. 并按 ctrl+space 弹出窗口显示“无默认建议”,底部的状态栏显示“没有可用的完成”。

有任何想法吗?

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

m
melodiouscode

尝试在“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 模板提案、模板提案、类型提案


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

我在这里添加一个答案,以防其他人在 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 版本可能无法很好地支持它。
H
Hoa Vu

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

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

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

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

https://i.stack.imgur.com/d4vOQ.png


这可能会使您的日食非常慢,代码库很大。
这对我有用。谢谢
A
Andrew

对于那些运行 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 桌面环境也会出现同样的问题。
M
Mona

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

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


M
Marc

这些都不适合我。

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


u
user1889970

https://i.stack.imgur.com/HrfDh.png


2
2 revs, 2 users 91%

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


N
Noumenon

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

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


N
Nirmal Mangal

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


A
Aaron

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

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


e
earcam

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

右键单击项目(您正在处理的项目)转到 Properties > Java Build Path > JRE System Library 单击右侧的 Edit... 选择 JRE 7


W
Witold Kaczurba

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

确保你有正确的目录结构。

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

https://i.stack.imgur.com/vGNoP.png

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

https://i.stack.imgur.com/hHHgf.png

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


T
Togepi

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

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

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

右键单击项目文件夹 > 属性 > Gradle > 配置工作区设置 > Java > 编辑器 > 内容辅助 > 高级

检查上方窗口中的“Java 提案”。

2x 申请并关闭


B
Bill Snee

自从升级到 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 类型建议。任何澄清这四种类型的不同之处将不胜感激。


t
theRiley

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

https://i.stack.imgur.com/OV89f.jpg


我和罗伯特布朗有完全相同的问题,这个解决方案非常适合这种情况。谢谢你。
a
arnehehe

就我而言,Intellisense 只在一个项目的几个课程中消失了。原来这是因为构建路径上缺少一个库(尽管它以前工作过)。

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


N
Naor Bar

对于那些使用最新的 3-19 eclipse build 的人:

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

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


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

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


i
ilinca

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

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


J
Jarekczek

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

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


t
tete

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

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

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


N
Noumenon

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


L
Lova Chittumuri

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

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

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

选择 Java 提案并单击向上按钮

https://i.stack.imgur.com/sDn9x.jpg


R
Robert

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