迁移到 JDK 10 后 XML 类的 Eclipse 构建路径问题
将 Maven 项目从 Java 8 迁移到 JDK 10 时,Eclipse 用户可能会遇到涉及 javax.xml.xpath 等类的构建错误, org.w3c.dom.Document 和 org.xml.sax.SAXException。当将项目的 Java 构建路径切换到 JDK 10 时,特别会出现此问题。
根本原因
问题源于项目缺少模块信息。 java 文件。此设置会导致代码在“未命名模块”中编译。未命名模块可以从所有可观察模块加载包,在本例中包括来自 Java 运行时环境的 java.xml 和来自 Maven 依赖项的 xml-apis 等包。
规则违反
这种情况违反了 Java 语言规范 (JLS) §7.4.3,该规范要求限定类型名称的唯一可见性。在这种情况下,java.xml 和 xml-api 中的包为 java.xml.xpath 和相关类提供了冲突的定义。
解决方案
1 。添加一个 module-info.java 文件
实现一个 module-info.java 文件并指定需要的模块,要么需要 java.xml;或者需要 xml.apis;,解决可见性问题。
2.从可观察模块中排除 java.xml
通过从可观察模块列表中排除 java.xml 来避免冲突。这可以通过 Eclipse 中的“模块化详细信息”对话框来实现。
含义和结论
虽然 javac 可能不会拒绝错误代码,但根据JLS。此后,Eclipse 错误消息传递得到了改进,可以提供更具体的潜在问题指示。建议开发人员遵守 Java 的模块化准则并确保其模块的独特可见性,以防止此类构建错误。
以上是为什么在迁移到 JDK 10 后,我会遇到 XML 类的 Eclipse 构建路径错误?的详细内容。更多信息请关注PHP中文网其他相关文章!