You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 10中javax.xml.stream等包无法解析,非模块化下需何种Maven依赖?

解决Java 10中javax.xml.stream相关包无法解析的Maven依赖问题

问题场景

在Java 8中,我曾使用以下包:

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.transform.stream.StreamSource;

切换至Java 10后,这些包无法被解析。我不想使用模块,请问需添加什么Maven依赖?

解决方案

你不需要额外添加新的Maven依赖,反而需要排除项目中依赖的旧版stax-api和xml-apis库。

原因是Java 9及以后的版本已经将这些XML相关的API内置到JDK中了,如果你的项目依赖了第三方库带来的旧版stax-api或xml-apis,就会和JDK自带的API产生类路径冲突,导致包无法被正常解析。

你需要在项目的Maven依赖中,找到引入这两个旧库的依赖项,添加排除规则:

<dependency>
    <groupId>你的依赖groupId</groupId>
    <artifactId>你的依赖artifactId</artifactId>
    <version>依赖版本号</version>
    <exclusions>
        <!-- 排除旧版stax-api -->
        <exclusion>
            <groupId>stax</groupId>
            <artifactId>stax-api</artifactId>
        </exclusion>
        <!-- 排除旧版xml-apis -->
        <exclusion>
            <groupId>xml-apis</groupId>
            <artifactId>xml-apis</artifactId>
        </exclusion>
    </exclusions>
</dependency>

排除之后,项目就会自动使用JDK 10内置的XML相关API实现,这样就能解决包无法解析的问题了。

内容的提问来源于stack exchange,提问作者Xdg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:46:19