是什么导致Eclipse抛出新的JavaModelException?
在Windows 10上,我下载并安装了Eclipse Oxygen[版本(4.7.1a)) 构建id:20171005-1200]使用是什么导致Eclipse抛出新的JavaModelException?,java,eclipse,java-9,eclipse-oxygen,Java,Eclipse,Java 9,Eclipse Oxygen,在Windows 10上,我下载并安装了Eclipse Oxygen[版本(4.7.1a)) 构建id:20171005-1200]使用 然后,我使用新建项目向导创建了一个简单的Java项目(没有模块内容): 它运行正常,如果我为test()或doStuff()或System或String或toString()或substr()打开实现,一切都很好 但是,对于println()和print()会显示一条错误消息: 此外,堆栈跟踪会写入错误日志: !!条目org.eclipse.jdt
- 它运行正常,如果我为test()或doStuff()或System或String或toString()或substr()打开实现,一切都很好
- 但是,对于println()和print()会显示一条错误消息:
- 此外,堆栈跟踪会写入错误日志:
- 但是,单击确定后,将按预期显示实现弹出窗口,单击打印流将我发送到正确的方法实现:
- 还有其他人知道这个问题吗,或者它是否有效
- 我是否可以/应该进行任何配置来修复此问题
- 你知道为什么开放实现只会给出print()和println()的错误吗
我假设
--add modules=ALL-SYSTEM
解决了这个问题,而用户将它作为-vmargs
arg添加到eclipse.ini
您的意思是说您可以访问其他方法(除了print()
和println()
)在java.base
模块中没有出现此错误?我复制了您的错误。对我来说似乎是个bug。我在Eclipse bug数据库中发现了类似的东西:@nullpointer问得好,答案是否定的。在进一步的测试中,我似乎可以查看java.base中任何类的实现(例如System、ArrayList),但没有方法。@skomisa Ya似乎与ZhekaKozlov共享的链接一致。也许我遗漏了什么,但我不确定这是否相关,因为我的项目不是模块化的。另外,当我用使用jdk9而不是JavaSE-9的向导创建第二个项目时,上面屏幕截图中的“java.activation”和“java.corba”条目消失了。否则,第二个项目的行为与第一个项目完全相同。i、 它编译并运行正常,但对于一些java.base方法仍然给出了“open implementation”错误,尽管我可以对String.toString()进行“open implementation”。@skomisaString.toString()
本身也是通过java.lang
导出的。因此,我不明白为什么它应该可以访问,而系统..
不应该访问。另外,在使用JDK9创建项目时——理想的方法应该是使用JavaSE9,我很想知道您是否在另一方面明确地修改了它。
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());
}
}