有时,当我在Java编辑器中的Type上按 F3 时,我在状态栏中收到此消息:
无法在编辑器中打开当前文本选择
当我将选择复制到剪贴板并使用 Ctrl + Shift + T 打开“打开类型”对话框时,我可以粘贴该值,它将显示类型,我可以打开它。类型在类路径上(没有编译错误)。
在同一项目的其他Java编辑器中,F3 / Ctrl-Click可以正常工作。
在“破损”编辑器中,它仅适用于内部字段和方法。对于内部字段,它仅适用于定义字段的位置。所有使用场地的地方都已死亡。 “Mark Occurrences”虽然有效。
如何摆脱它?
到目前为止,我试过了:
这种情况发生在安装了m2e 1.3.1的Eclipse 3.7.2上。
答案 0 :(得分:6)
[更新] 这似乎是bug somewhere in the depths of m2e and JDT。通常,当您有多个项目(Maven多模块/反应堆构建)并且模块MA
,MB
和MC
相互依赖时,它会出现:
MC
取决于MB
取决于X.Y<T>
的内部参数化类型MA
。
和您已关闭模块MB
。在MC
的类路径上,这将是这样的:
MB.jar
MA
MB
作为类路径上的JAR存在,而MA
作为Eclipse项目从工作区导入。
在这种情况下,当阅读.class
中需要MB.jar
内部参数化类型的MA
文件时,Eclipse会感到困惑。我的猜测是它需要来自MB.jar
的类型,解析它,告诉它对MA
中的类型的依赖关系,然后它尝试解析只找到{{1}的类型参数因为T
的解析尚未完成,所以无法解决。
有三个修正:
MB
。这将导入所有内容作为JAR。MA
。<强> [老] 强>
如果发生这种情况,请按照绝望的增加顺序尝试以下步骤:
如果一切都失败了:
MB
。它在某些操作系统上是一个不可见的文件夹,但它就在那里。相关:
答案 1 :(得分:2)
Eclipse(至少在Luna中)存在一个非常具体的工作流程的错误,这可能不是这个特定问题的答案,但可能对其他人有帮助。
如果您从提取的jar(作为源代码)执行src导入(意味着src文件夹在执行导入之前具有焦点)文件夹,并且您在嵌套包中的嵌套* .java文件中放置断点,它赢了没有击中那些断点。为了让事情变得有效,您必须继续按F3而不是使用“Open Declaration”来获取要设置断点的* .java文件,然后通过双击最左边距添加断点。然后运行&gt; Debug As&gt; Java应用程序。