包org.w3c.dom可以从多个模块访问:<未命名>,java.xml

poo*_*raj 8 java eclipse w3c dom java-12

我无法将org.w3c.dom.NodeList包导入到Eclipse。它显示

可以从多个模块中访问org.w3c.dom包:<unnamed>eclipse中的“ java.xml”错误消息。

请让我知道如何解决此问题?

Eclipse版本:

适用于企业Java开发人员的Eclipse IDE。

版本:2019-06(4.12.0)

版本号:20190614-1200

Java版本:

java版本“ 12.0.1” 2019-04-16

Java(TM)SE运行时环境(内部版本12.0.1 + 12)

Java HotSpot(TM)64位服务器VM(内部版本12.0.1 + 12,混合模式,共享)

Luk*_*der 10

由于传递xml-apis依赖,我遇到了类似的问题。我使用 Maven 排除解决了它:

<dependency>
    <groupId>org.apache.xmlgraphics</groupId>
    <artifactId>fop</artifactId>
    <version>0.95</version>
    
    <exclusions>
        <exclusion>
            <groupId>xml-apis</groupId>
            <artifactId>xml-apis</artifactId>
        </exclusion>
    </exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)

另一个只会引起麻烦并且除了删除它之外我没有其他解决方案的依赖项是:

<dependency>
    <groupId>com.oracle.database.xml</groupId>
    <artifactId>xmlparserv2</artifactId>
    <version>${oracle.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

mvn dependency:tree,看看是谁的传递依赖带来的,然后排除从那里。


zic*_*ico 7

就我而言,这是由组合使用引起的:

  • JDK 11
  • dom4j 2.1.3图书馆

正如其他人指出的,根本原因是dom4j它的依赖项(例如, )使用了 JDK 已使用的pull-parser一些包名称(javax.xml.parsers, )。org.w3c.dom

我必须删除dom4j才能解决问题。只需使用JDK自己的XML api即可。

  • 这里同样存在问题,因为 `dom4j` 依赖于 Jaxen 并且捆绑了 `org.w3c.dom.UserContentHandler`。 (2认同)

MSi*_*nce 7

令人失望的是,我没有看到任何编译器标志来显示问题是什么 jar 甚至 -Xlint:module 似乎没有显示任何有用的东西,eclipse 也没有说明这个问题

而不是找到 org.w3c.dom 从哪里来,我一直在使用这个脚本:

mvn dependency:copy-dependencies -DincludeScope=test -DoutputDirectory=deps
for i in deps/*.jar; do if unzip -l $i| grep -q org.w3c.dom; then echo $i; fi ; done
Run Code Online (Sandbox Code Playgroud)

严格地说,您不必指定范围测试,因为这是默认设置,但我已将其包含在内,因为您可能想compile改用它


Dam*_*n C 5

在我这边,我花了几个小时来了解我的问题,对这个问题真的很接近。
The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml

我想将一个项目从 Java 8 迁移到 Java 11。一些库问题。易于修复。但在这一点上,

  • 我试过创建 module-info.java 吗?这是最糟糕的。
  • 在我的操作系统 (debian 10) 上发现问题?即使 Java 11 是默认的 JRE,$JAVA_HOME 也没有为 maven 构建正确设置。而当我认为这只是一个 Eclipse 问题时,我最终认为这是一个全局编译问题。为了解决这个问题,我必须添加以下行~/.mavenrc

    JAVA_HOME=/usr/lib/jvm/default-java

  • 对 maven 依赖项的深入分析显示我对xom .jar的第三级依赖项触发了该问题。依赖被链接到Saxon HE库?升级到版本 9.9.X解决了这个无聊的问题。

希望这会帮助其他人。


小智 2

只需打开配置构建路径并验证您作为项目的一部分添加的所有模块,其中包含类文件*

org.w3c.dom

在 Java 中,我们通常会因为在一个项目中添加相同类型的多个 API 包而出现此错误。

因为我使用的是与您提到的相同的版本,所以没有遇到任何问题,所以只需确保您没有任何重复的模块即可。