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

JDK 10下Maven因缺失tools.jar报错,cobertura插件2.7找不到该文件

解决cobertura-maven-plugin 2.7找不到tools.jar的问题

这个问题的核心原因很明确:你用的是JDK 10,而cobertura-maven-plugin 2.7是个比较老旧的版本(2015年发布),它的设计只兼容JDK 8及更早版本——在JDK 9及以后的版本中,tools.jar已经被移除,相关工具类被整合到JDK的模块系统里,插件还在按旧路径逻辑查找这个不存在的文件,所以才会报错。

你在pom.xml里声明的com.sun:tools依赖其实起不到作用,因为这个插件并不是通过Maven依赖加载tools类的,而是直接硬编码去JDK_HOME/../lib/tools.jar路径查找,所以就算你加了依赖,插件还是会走自己的旧逻辑。

下面给你两个可行的解决方案:

方案1:升级cobertura-maven-plugin到兼容JDK9+的版本

这是最推荐的长期解决方案,新版本的插件已经适配了JDK9及以后的模块系统,不会再去查找tools.jar。你可以把插件版本升级到2.11.1(或更高稳定版本),修改pom.xml里的插件配置:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <version>2.11.1</version>
    <!-- 其他原有配置保持不变 -->
</plugin>

升级后记得移除你之前加的com.sun:tools依赖,因为JDK9+不需要这个依赖,留着反而可能引发不必要的冲突。

方案2:降级JDK到JDK8(临时方案)

如果因为项目限制暂时不能升级插件,你可以把项目使用的JDK切换回JDK8——JDK8里还保留着tools.jar,插件能正常找到它,不会报错。不过这个方案只是权宜之计,毕竟JDK8已停止官方支持,长期来看还是建议升级插件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:20:40