在 Windows 10 上,我使用Eclipse Installer下载并安装了 Eclipse Oxygen [Release (4.7.1a) Build 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()或System或String或toString()或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()给出错误?