如何摆脱Eclipse中的“当前文本选择无法在编辑器中打开”?

时间:2013-08-14 09:20:05

标签: eclipse-jdt

有时,当我在Java编辑器中的Type上按 F3 时,我在状态栏中收到此消息:

  

无法在编辑器中打开当前文本选择

当我将选择复制到剪贴板并使用 Ctrl + Shift + T 打开“打开类型”对话框时,我可以粘贴该值,它将显示类型,我可以打开它。类型在类路径上(没有编译错误)。

在同一项目的其他Java编辑器中,F3 / Ctrl-Click可以正常工作。

在“破损”编辑器中,它仅适用于内部字段和方法。对于内部字段,它仅适用于定义字段的位置。所有使用场地的地方都已死亡。 “Mark Occurrences”虽然有效。

如何摆脱它?

到目前为止,我试过了:

  1. 关闭并打开编辑器
  2. 清理项目
  3. 清理所有项目
  4. Maven上下文菜单中的“更新项目...”
  5. 重启Eclipse
  6. 使用-clean重启Eclipse
  7. 这种情况发生在安装了m2e 1.3.1的Eclipse 3.7.2上。

2 个答案:

答案 0 :(得分:6)

[更新] 这似乎是bug somewhere in the depths of m2e and JDT。通常,当您有多个项目(Maven多模块/反应堆构建)并且模块MAMBMC相互依赖时,它会出现:

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的解析尚未完成,所以无法解决。

有三个修正:

  1. 关闭MB。这将导入所有内容作为JAR。
  2. 打开项目MA
  3. 使内部类型为顶级类型
  4. <强> [老]

    如果发生这种情况,请按照绝望的增加顺序尝试以下步骤:

    1. 关闭编辑器并再次打开。
    2. 清理项目
    3. 关闭项目并再次打开。
    4. 重启Eclipse
    5. 如果一切都失败了:

      1. 导出您的偏好
      2. 退出Eclipse
      3. 删除(或重命名)工作区中的文件夹MB。它在某些操作系统上是一个不可见的文件夹,但它就在那里。
      4. 再次启动Eclipse
      5. 导入您的偏好
      6. 再次导入所有项目。为此,请选择工作区。然后,Eclipse将列出对话框中的所有项目,您可以一次选择所有项目。
      7. 相关:

        • Bug 430605 - [select]无法在编辑器中打开当前文本选择

答案 1 :(得分:2)

Eclipse(至少在Luna中)存在一个非常具体的工作流程的错误,这可能不是这个特定问题的答案,但可能对其他人有帮助。

如果您从提取的jar(作为源代码)执行src导入(意味着src文件夹在执行导入之前具有焦点)文件夹,并且您在嵌套包中的嵌套* .java文件中放置断点,它赢了没有击中那些断点。为了让事情变得有效,您必须继续按F3而不是使用“Open Declaration”来获取要设置断点的* .java文件,然后通过双击最左边距添加断点。然后运行&gt; Debug As&gt; Java应用程序。