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

更新Jar包后运行TestNG报com.google.common.base类NoClassDefFoundError求助

问题根因

该错误为典型的Guava版本冲突问题:编译阶段类路径下的Guava版本包含目标方法,所以没有编译报错;运行时类加载器优先加载了其他版本的Guava Jar包,该版本缺失com.google.common.base.Platform.stringIsNullOrEmpty方法,最终抛出NoClassDefFoundError。

解决方案
  • 排查全项目Guava依赖,排除重复冲突版本
    如果你使用Maven管理依赖,执行mvn dependency:tree | grep guava命令查看所有直接/间接引入的Guava包,给非预期版本的Guava依赖添加<exclusions>配置排除冲突版本。如果你使用Gradle管理依赖,执行gradle dependencies | grep guava完成排查。
  • 统一全项目Guava版本
    锁定全项目Guava版本为28.2-jre及以上的稳定正式版本,避免跨版本API不兼容问题。
  • 清理缓存重新构建
    执行mvn clean install(Maven项目)或gradle clean build(Gradle项目),清除历史编译缓存后再运行TestNG用例,确认运行时类路径下仅存在指定的统一版本Guava Jar。
  • 手动导Jar项目排查方案
    如果你是手动导入Jar包的项目,直接检查项目lib目录、JDK扩展目录、运行环境类路径下是否存在多个版本的Guava Jar,删除所有冲突版本,仅保留一个统一版本即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:39:03