OpenJDK 11下DocumentBuilderFactory缺失javax.xml.parsers的IVY依赖求助
解决OpenJDK11下Ivy依赖缺失javax.xml.parsers的问题
我来帮你搞定这个迁移后的依赖问题——从JDK8转到OpenJDK11后找不到javax.xml.parsers相关类的情况,本质是JDK版本升级带来的模块化变化导致的。
问题根源
JDK8及更早版本中,javax.xml.parsers(属于JAXP,Java API for XML Processing)是JDK核心类库的一部分,不需要额外引入依赖就能直接使用。但从JDK9开始,OpenJDK遵循模块化规范,把Java EE相关的模块从核心JDK中移除了,这类API需要通过外部依赖包来引入。
对应的Ivy依赖配置
你只需要在项目的ivy.xml文件中添加以下依赖项,就能获取包含DocumentBuilderFactory和DocumentBuilder的JAXP API包:
<dependency org="javax.xml.parsers" name="jaxp-api" rev="1.4.5" />
如果需要更兼容新版本JDK的版本,也可以使用1.4.6,这个版本同样支持OpenJDK11。
额外注意事项
- 确认你的Ant构建脚本已经正确集成了Ivy,并且在编译任务(
javac)中把Ivy解析到的依赖添加到了classpath里,否则即使引入了依赖,编译时还是会找不到类。 - 如果Eclipse里的错误提示还没消失,可以尝试右键项目 → Ivy → Resolve 同步依赖,或者刷新整个项目,一般就能解决导入语句的解析问题。
内容的提问来源于stack exchange,提问作者Dupinder Singh




