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

Maven报错Cannot resolve com.sun:tools:1.5该如何解决?

报错根因

从JDK 9开始,官方已移除传统JDK目录下lib文件夹中的tools.jar、rt.jar等组件,相关类全部整合到了JDK的模块化系统中,你使用的JDK 16自然不存在该文件。本次报错是项目依赖树中存在旧版第三方组件,间接引入了com.sun:tools:1.5坐标导致的。

解决方案
  • 方案1:排除传递依赖的tools.jar引用
    先通过mvn dependency:tree命令定位到引入com.sun:tools的上层依赖,在该依赖的配置中添加排除规则,示例如下:
<dependency>
    <groupId>对应上层依赖的groupId</groupId>
    <artifactId>对应上层依赖的artifactId</artifactId>
    <version>对应上层依赖的版本</version>
    <exclusions>
        <exclusion>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
        </exclusion>
    </exclusions>
</dependency>
  • 方案2:升级相关依赖到兼容JDK9+的版本
    对应引入tools.jar的第三方组件通常已经推出适配高版本JDK的更新,升级到对应新版本即可消除对旧版tools.jar的依赖。
  • 方案3:手动标记tools依赖为provided
    如果不想修改原有依赖配置,可以直接在pom.xml的dependencies节点中添加如下配置,标记该依赖由JDK环境提供,Maven不会再尝试拉取该jar包:
<dependency>
    <groupId>com.sun</groupId>
    <artifactId>tools</artifactId>
    <version>1.5</version>
    <scope>provided</scope>
</dependency>
  • 方案4:降级JDK版本(不推荐)
    如果项目本身不支持高版本JDK,可将本地运行Maven构建的JDK版本切换为JDK 8,JDK 8的lib目录下默认包含tools.jar文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:06:08