Eclipse Java 编辑器突出显示错误但代码编译

Eclipse Java Editor highlights the error but code compiles

当使用 JDK 11、Eclipse 2019-03 和 jaxb-api(版本 2.4,maven 存储库中最新可用)时,Java Eclipse 中的编辑器突出显示以下行:

import javax.xml.XMLConstants;

作为一个错误:

The package javax.xml is accessible from more than one module: unnamed, java.xml

但是代码可以编译并且问题选项卡中没有显示任何错误。删除 jaxb-api 依赖项会使错误消失。此项目中的 jaxb-api 位于类路径上并包含以下包:

javax.xml.bind;
javax.xml.bind.annotation;
javax.xml.bind.annotation.adapters;
javax.xml.bind.attachment;
javax.xml.bind.helpers;
javax.xml.bind.util;

是 Eclipse 中的错误还是 dependency/project 中的问题?

当您在 ModulePath 中添加外部 jar 时会发生这种情况。

解决方案:

1) 从节点 "Modulepath" 中删除外部 jar。 2) Select 节点 "Classpath" 然后添加外部 jar。 3)查看所有jar都在节点"Classpath".

是的,这是Eclipse 2019-03的一个bug Java IDE(在jaxb-api javax.xml是分包,允许,但不是真实包裹,这是不允许的):

Eclipse Bug 546315 - [11] "The package […] is accessible from more than one module: , […]" error shown in Java editor by mistake

错误已经修复。因此,要么忽略它(因为代码已编译),要么使用更新版本,如 Eclipse 2019-06 (4.12)。