【发布时间】:2026-01-12 22:15:02
【问题描述】:
我想我尝试了所有建议的解决方案,但这个 Eclipse 自动完成问题非常特殊:
- 我启动 Eclipse,内容辅助工作正常;
- 我想在我的 Swing 项目中创建 LineBorder;
- 我输入
LineBorder panelBorder = new Li,然后按Ctrl+Space; - 没有弹出窗口出现,并且在状态栏中用红色写着“无法完成”;
- 我尝试在内容辅助 2 秒前正常工作的元素上按 Ctrl+Space,但它不再工作了。
- 在我尝试使用 LineBorder 构造函数之前,我在其他项目上尝试了同样的事情,在同一个项目上关闭并重新打开它,清理它并且内容辅助工作正常之后,然后它崩溃了。
我尝试了什么:
- 在“首选项->Java->编辑器->内容辅助->高级”中重置为默认值;
- 选中同一菜单中的每个复选框;
- 创建一个新工作区并在那里尝试;
- 删除 .index 文件和 .metadata/.plugins/org.eclipse.jdt.core 中的“savedIndexNames.txt”;
- 检查重复的库。
我没有尝试的是重新安装 Eclipse。我使用的版本是 Eclipse IDE for Java Developers (Juno)。
似乎没有任何效果。
更新:
按照iGili 的建议检查日志。 失败时会引发一些异常:
org.eclipse.e4.core.di.InjectionException: org.eclipse.core.commands.ExecutionException: While executing the action, an exception occurred
Caused by: org.eclipse.core.commands.ExecutionException: While executing the action, an exception occurred
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
at org.eclipse.jdt.internal.codeassist.InternalCompletionProposal.findConstructorParameterNames(InternalCompletionProposal.java:257)
at org.eclipse.jdt.internal.codeassist.InternalCompletionProposal.findParameterNames(InternalCompletionProposal.java:1456)
at org.eclipse.jdt.ui.text.java.CompletionProposalLabelProvider.appendUnboundedParameterList(CompletionProposalLabelProvider.java:113)
at org.eclipse.jdt.ui.text.java.CompletionProposalLabelProvider.createMethodProposalLabel(CompletionProposalLabelProvider.java:272)
at org.eclipse.jdt.ui.text.java.CompletionProposalLabelProvider.createStyledLabel(CompletionProposalLabelProvider.java:570)
at org.eclipse.jdt.internal.ui.text.java.LazyJavaCompletionProposal.computeDisplayString(LazyJavaCompletionProposal.java:262)
at org.eclipse.jdt.internal.ui.text.java.LazyJavaCompletionProposal.getStyledDisplayString(LazyJavaCompletionProposal.java:238)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.handleSetData(CompletionProposalPopup.java:841)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$24(CompletionProposalPopup.java:831)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup$3.handleEvent(CompletionProposalPopup.java:593)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Table.checkData(Table.java:1166)
at org.eclipse.swt.widgets.Table.wmNotifyChild(Table.java:6749)
at org.eclipse.swt.widgets.Control.wmNotify(Control.java:5534)
at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1896)
at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:5086)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4584)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1627)
at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2069)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4989)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2440)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:564)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:430)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4623)
它继续,我不知道发布长堆栈跟踪的约定是什么
【问题讨论】:
-
当我检查我的 Eclipse 时它工作正常,我使用相同的 Eclipse。仅此示例会发生这种情况还是
CTRL + Space根本不起作用? -
在我尝试这个示例之前,Ctrl+Space 几乎可以在任何地方工作,但在它之后根本不起作用。
-
我不认为 Ctrl+Space 分配给其他任务,因为在这种情况下它根本不起作用。在我的情况下,当我重新启动 Eclipse/重新打开项目/清理项目直到我尝试对给定示例使用自动完成时,它再次工作
-
我建议重新安装 Eclipse,我认为这是一种快速的方法。让我知道它是否解决了问题
标签: java eclipse content-assist