Eclipse Java编辑器突出显示该错误,但代码可以编译

时间:2019-05-02 08:01:12

标签: java eclipse jaxb

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

import javax.xml.XMLConstants;

作为错误:

  

可从多个模块访问包javax.xml:未命名的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中的错误还是依赖项/项目中的问题?

2 个答案:

答案 0 :(得分:2)

是的,这是Eclipse 2019-03 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)或使用Eclipse 2019-06的预览版(4.12)。

答案 1 :(得分:0)

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

解决方案:

1)从节点“ Modulepath”中删除外部jar。 2)选择节点“ Classpath”,然后添加外部jar。 3)检查所有jar都在“ Classpath”节点下。