从JDK 8迁移到OPEN JDK 11 - 缺少导入

3

我正在尝试将我的应用程序从Java 8迁移到Open JDK 11。

JDK 11中缺少一些导入。例如,我找不到以下导入:

import org.w3c.dom.Document;
import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;
import org.xml.sax.SAXException;

但是当我尝试添加(w3c-dom.jar)外部jar文件时,我们收到以下错误信息:

包org.w3c.dom可以从多个模块访问: , java.xml

与上述类似,所有导入都会出现相同的错误

包org.xml.sax可以从多个模块访问: , java.xml

请针对以上错误提出您的建议。


1
你是否在使用Eclipse?如果是,请参考以下链接:https://dev59.com/clUK5IYBdhLWcg3w7DcH#51094559 和 https://bugs.eclipse.org/bugs/show_bug.cgi?id=544758。 - Ramesh Subramanian
是的,Ramesh,我正在使用Eclipse IDE。我已经尝试更改类路径中的JRE顺序,但没有成功。 - Karthick88it
此外,我已经尝试使用“xml-apis-2.0.jar”,并且我的JDK在类路径的顶部。 - Karthick88it
1
似乎这是Eclipse中的一个bug。这里有一篇关于该bug的长篇讨论 - https://bugs.eclipse.org/bugs/show_bug.cgi?id=536928 - Ramesh Subramanian
谢谢Ramesh。我目前正在使用Eclipse版本:2019-03(4.11.0)。让我尝试其他版本。 - Karthick88it
1个回答

4
我遇到了类似的问题,就像下面所提到的那样。
The package org.w3c.dom is accessible from more than one module: <unnamed>, java.xml.

因为有一种内部生成xml-apis.jar的依赖关系,而这个jar实际上是造成问题的根源。我按照以下步骤解决了这个问题:
  • 进入您系统的.m2存储库文件夹,并检查xml-apis.jar是否存在。如果存在,则意味着此jar文件正在创建问题。
  • 从存储库文件夹中删除此jar文件。
  • 在您的pom.xml中排除xml-apis传递性依赖关系。
  • 刷新、重新编译项目并检查。
注意:在您的情况下,可能是另一个依赖关系生成了这个xml-api.jar,请找到该依赖关系并排除xm-api。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接