什么导致Eclipse Oxygen 1a抛出newJavaModelException?

时间:2017-10-23 06:26:08

标签: java eclipse java-9 eclipse-oxygen

  • 在Windows 10上我下载并安装了Eclipse Oxygen [发布(4.7.1a) 使用Eclipse Installer

  • 构建ID:20171005-1200]
  • 然后我使用New Project向导创建了一个简单的Java项目(没有模块的东西):

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()执行 CTL => Open Implementation ,或者系统字符串 toString() substr()一切正常。

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

Open Implementation

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

!ENTRY org.eclipse.jdt.ui 4 0 2017-10-23 01:42:54.695!MESSAGE An   搜索'print'的实现时发生错误。看到   错误日志了解详情。 !堆栈1 Java模型异常:Java模型   状态[不在其项目的构建路径上]   org.eclipse.jdt.internal.core.JavaElement。的 newJavaModelException (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.BinaryType.getElementInfo(BinaryType.java:287)     在   org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:306)     在   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不在其项目的构建路径上

  • 但是,点击确定后,“实施”弹出窗口会按预期显示,点击 PrintStream 会向我发送正确的方法实施:

Implementation

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

  • 是否有其他人遇到此问题,或者是否有效?

  • 我可以/应该做些什么配置来解决这个问题吗?

  • 打开实施的任何想法只会为 print() println()提供错误?

1 个答案:

答案 0 :(得分:1)

这似乎是@ZhekaKozlovanother thread所指出的当前实施中的一个错误,其中@Stephan分享了未来发布的工作进展文档{{3说明: -

  

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

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

New & Noteworthy for Photon M3

我假设--add-modules=ALL-SYSTEM正在解决此问题,而用户将此-vmargs arg附加到eclipse.ini

相关问题