15

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

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

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

在同一项目的其他 Java 编辑器中,F3 / Ctrl-Click 有效。

在“损坏”的编辑器中,它仅适用于内部字段和方法。对于内部字段,它只在定义字段的地方起作用。所有使用字段的地方都是死的。不过,“标记事件”有效。

我该如何摆脱它?

到目前为止,我尝试过:

  1. 关闭并打开编辑器
  2. 清理项目
  3. 清理所有项目
  4. Maven 上下文菜单中的“更新项目...”
  5. 重启 Eclipse
  6. 使用 -clean 重启 Eclipse

这发生在安装了 m2e 1.3.1 的 Eclipse 3.7.2 上。

4

2 回答 2

6

[更新]这似乎是m2e 和 JDT 深处的一个错误。通常,当您有多个项目(Maven 多模块/反应器构建)和模块时出现MAMB并且MC相互依赖:

MC取决于MB取决于 的内部参数化类型X.Y<T>MA

并且您已经关闭了模块MB。在 的类路径上MC,这将如下所示:

MB.jar
MA

MB作为类路径上的 JAR 存在,而MA作为 Eclipse 项目从工作区导入。

在这种情况下,Eclipse 在读取.class需要MB.jarMA. 我的猜测是它需要 from 的类型MB.jar,解析它告诉它依赖于类型,MA然后它尝试解析只是发现类型参数 forT无法解析,因为解析MB尚未完成.

有三个修复:

  1. 关闭MA。这会将所有内容作为 JAR 导入。
  2. 打开项目MB
  3. 使内部类型成为顶级类型

[老的]

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

  1. 关闭编辑器并再次打开它。
  2. 清理项目
  3. 关闭项目并再次打开它。
  4. 重启 Eclipse

如果一切都失败了:

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

有关的:

  • 错误 430605 - [选择] 无法在编辑器中打开当前文本选择
于 2013-11-07T16:23:15.507 回答
2

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

如果您从提取的 jar(作为源代码)执行导入到 src(意味着 src 文件夹在执行导入之前具有焦点)文件夹,并且您在嵌套包中的嵌套 *.java 文件中放置断点,它不会命中那些断点。为了让事情正常工作,您必须继续按 F3 而不是使用“打开声明”来访问要在其中设置断点的 *.java 文件,然后双击最左边的空白处添加断点。然后运行 ​​> 调试为 > Java 应用程序。

于 2014-09-22T23:11:55.933 回答