首页 >Java >java教程 >为什么我的 Eclipse Maven 项目升级到 JDK 10 后找不到 XML 类?

为什么我的 Eclipse Maven 项目升级到 JDK 10 后找不到 XML 类?

DDD
DDD原创
2024-12-07 13:51:17217浏览

Why Does My Eclipse Maven Project Fail to Locate XML Classes After Upgrading to JDK 10?

Eclipse 构建错误:在 JDK 10 升级后定位 XML 类

一些用户在切换其 Java 构建路径后遇到了令人困惑的问题Maven项目到JDK 10。Eclipse构建无法找到与XML处理相关的类,例如javax.xml.xpath.XPath 和 org.w3c.dom.Document。有趣的是,从 Eclipse 构建的 Maven 运行时没有错误。

根本原因:模块冲突

这个问题的根本原因在于项目缺少模块信息.java 文件。如果没有此文件,项目将驻留在“未命名模块”中,并读取所有可观察的命名和未命名模块,包括 JRE 中的“java.xml”和项目自己的类路径中的“xml.apis”。

唯一可见性要求

这种情况违反了Java语言规范的“唯一可见性”要求。每个限定类型名称必须有一个唯一可见的包。但是,由于“java.xml”和“xml.apis”都提供具有相同名称的包(例如 java.xml.xpath),因此会出现冲突。

潜在解决方案

要解决此问题,请考虑以下解决方案:

1.添加 module-info.java 文件

此文件允许您控制项目读取哪些模块。通过指定requires java.xml;或者需要xml.apis;,可以明确定义依赖关系,避免冲突。

2.避免 Eclipse 中的冲突

在不添加 module-info.java 文件的情况下,您仍然可以通过使用“模块化详细信息”对话框来防止 Eclipse 中的冲突。将除 java.base 之外的所有模块移至左侧(“可用模块”),并有选择地重新添加任何必要的模块。

尽管有这些解决方案,Eclipse 错误消息仍然不准确,无法查明实际问题。该消息已得到改进,但根本问题仍然存在。

以上是为什么我的 Eclipse Maven 项目升级到 JDK 10 后找不到 XML 类?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn