我无法将org.w3c.dom.NodeList
软件包导入Eclipse。它显示
可以从多个模块访问包org.w3c.dom:Eclipse中的
<unnamed>
,java.xml“错误消息。
请让我知道如何解决此问题?
Eclipse版本:
面向企业Java开发人员的Eclipse IDE。
版本:2019年6月(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,混合模式,共享)
答案 0 :(得分:9)
由于有传递性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>
使用mvn dependency:tree
查看谁带来了传递依赖,然后从中排除传递依赖。
答案 1 :(得分:4)
在我这边,我花了几个小时来了解我的问题,对这个问题真的很了解。
The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml
我想将项目从Java 8迁移到Java11。一些库问题。易于修复。但是在这个
在我的操作系统上发现问题(debian 10)
→即使Java 11是默认的JRE,也没有正确设置$ JAVA_HOME
专家构建。当我以为这只是一个Eclipse问题时,我最终认为这是一个全局编译问题。要解决此问题,我必须在~/.mavenrc
JAVA_HOME=/usr/lib/jvm/default-java
对Maven依赖关系的深入分析向我展示了对 xom .jar的第三级依赖关系,这会触发问题。依赖关系已链接到 Saxon HE 库→升级到版本9.9.X 已解决了此无聊的问题。
希望这对其他人有帮助。
答案 2 :(得分:2)
令人失望的是,我没有看到任何编译器标志来显示问题所在的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
严格来说,您不必指定范围测试,因为它是默认设置,但由于您可能想使用compile
来代替它,所以我将其包含在内
答案 3 :(得分:1)
只需打开configure构建路径,并验证作为项目一部分添加的所有模块,其中包含* *的类文件
org.w3c.dom
此错误,由于一个项目中添加了相同种类的多个API软件包,我们通常会遇到Java。
使用与您提到的版本相同的版本,不会遇到任何问题。因此,请确保没有重复的模块。
答案 4 :(得分:1)
在我的情况下,这是由于以下原因导致的:
JDK 11
dom4j 2.1.3
库正如其他人指出的,根本原因是dom4j
及其依赖项(例如pull-parser
)使用了一些具有由JDK使用。
我必须删除javax.xml.parsers
才能解决问题。只需使用JDK自己的XML API。
答案 5 :(得分:1)
对于Java 9和更高版本,请从类路径中删除org.w3c.dom jar文件,您已完成。顺便删除模块信息文件。您无需添加外部jar文件,该文件已包含在Java 9及更高版本的系统库中。
答案 6 :(得分:1)
就我而言,我使用的是:
JDK 14
和 xmlbeans.jar
库。
我只需要删除 xmlbeans.jar
库,它确实解决了这个问题。
答案 7 :(得分:0)
org.w3c.dom 用于:
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.4.0</version>
</dependency>
检查它是否通过其他依赖项以可传递方式导入。 排除相同
添加以下项的依赖关系:
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.6.0</version>
</dependency>
答案 8 :(得分:0)
reference screenshot 没有什么对我有用,最后当我将版本更改为 1.8 时,它在 maven 构建后开始工作,
答案 9 :(得分:0)
如果您在一个简单的 Java 项目,而不是 Maven。 然后只需从库中移除 dom-jaxb jar。
步骤: 右键单击项目 -> 属性 -> Java BuildPath -> 库选项卡 -> 选择 jars,例如 dom-2.3.0-jaxb-1.0.6(版本可能不同)-> 删除。
现在它可以正常构建了。
发生错误是因为“org.w3c.dom.Document”来自已删除的“dom-2.3.0-jaxb-1.0.6”jar 和 Java 的内置库。删除额外的 jar 将让它只来自 Java 的内置库。