4
public class Demo1 {

  public static void main(String[] args) {
      new Demo1().test(0L);
  }

  void test(int i) {
      doStuff();
  }

  void test(long l) {
      doStuff();
  }

  void doStuff() {
      String s = "abcde";
      s = s.substring(2,4);
      System.out.print("s=");
      System.out.println( s.toString());
  }

}
  • 它运行正常,如果我为test()doStuff()SystemStringtoString()substr()执行CTL=>Open Implementation ,一切都很好。

  • 但是,对于println()print()会显示一条错误消息:

开放实施

  • 此外,堆栈跟踪将写入错误日志:

!ENTRY org.eclipse.jdt.ui 4 0 2017-10-23 01:42:54.695 !MESSAGE 搜索“打印”实现时出错。有关详细信息,请参阅错误日志。!STACK 1 Java 模型异常:org.eclipse.jdt.internal.core.JavaElement 中的 Java 模型状态 [不在其项目的构建路径上]。新JavaModelException(JavaElement.java:570) 在 org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:247) 在 org.eclipse.jdt.internal.core.Openable.openAncestors(Openable.java:505) 在org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:241) 在 org.eclipse.jdt.internal.core.Openable.openAncestors(Openable.java:505) 在 org.eclipse.jdt.internal。 core.Openable.generateInfos(Openable.java:241) 在 org.eclipse.jdt.internal.core.SourceRefElement.generateInfos(SourceRefElement.java:107) 在 org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement. java:583) 在 org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:306) 在 org.eclipse.jdt.internal.core.BinaryType.getElementInfo(BinaryType.java:287) 在 org.eclipse .jdt.internal.core.BinaryType.isInterface(BinaryType.java:725) 在 org.eclipse.jdt.internal.ui.javaeditor.JavaElementImplementationHyperlink$1.run(JavaElementImplementationHyperlink.java:237) 在 org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119) ! SUBENTRY 1 org.eclipse.jdt.core 4 1006 2017-10-23 01:42:54.695 !MESSAGE 不在其项目的构建路径上

  • 但是,单击OK后,Implementation 弹出窗口按预期显示,单击PrintStream将我发送到正确的方法实现:

执行

这看起来像是 Eclipse 或其安装程序中的错误,但问题非常基本,但我没有看到任何报告。我有几个问题出现:

  • 有没有其他人得到这个问题,或者它正在工作?

  • 我可以/应该做任何配置来解决这个问题吗?

  • 任何想法为什么Open Implementation只会为print()println()给出错误?

4

1 回答 1

1

这似乎是当前实现中的一个错误,正如@ZhekaKozlov另一个线程中所指出的那样, @ Stephan 共享了一个正在进行的文档,用于未来版本的Photon M3 的 New & Noteworthy指出:-

注意:并非必须使用 Java Runtime 9 运行 Eclipse 以获得 Java 9 支持。但是,Java 运行时 9 需要位于项目的构建路径上,才能针对系统模块编译模块化项目。

将 Java Runtime 9 添加到项目的构建路径时,系统模块会列在包资源管理器中的系统库下

在此处输入图像描述

我假设--add-modules=ALL-SYSTEM在用户将其作为-vmargsarg 附加到eclipse.ini.

于 2017-10-23T07:18:42.510 回答