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

Spring Boot项目Jar包运行时调用功能报com.google.common.collect.Lists找不到异常求助

解决Spring Boot Jar包运行时Guava类找不到的问题

这个问题我碰到过好多次了,本质就是Guava依赖虽然在编译时能找到,但运行时的可执行Jar里没包含对应的类文件,给你几个一步步排查解决的办法:

  • 检查依赖配置的Scope
    很多时候问题出在依赖的scope设置上,如果你的Guava依赖用了provided或者test,打包时这些依赖不会被包含到最终的可执行Jar里。确保你的Maven依赖是这样的(替换成你需要的版本号):

    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>32.1.3-jre</version>
    </dependency>
    

    如果你用Gradle,要确保用的是implementation而不是compileOnly或testImplementation:

    implementation 'com.google.guava:guava:32.1.3-jre'
    
  • 清理并重新构建项目
    旧的构建缓存可能会导致依赖没有正确打包,执行以下命令彻底清理后重新构建:

    • Maven:mvn clean package
    • Gradle(Linux/Mac):./gradlew clean build
    • Gradle(Windows):gradlew clean build
  • 确认Spring Boot打包插件配置
    必须使用Spring Boot官方的打包插件,它会把所有依赖打包到Jar的BOOT-INF/lib目录下,确保你的Maven构建配置里包含这个插件:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    

    如果用Gradle,要确保应用了Spring Boot插件:

    plugins {
        id 'org.springframework.boot' version '3.2.0'
        id 'io.spring.dependency-management' version '1.1.4'
        id 'java'
    }
    
  • 验证Jar包内是否包含Guava
    打包完成后,检查Jar包内部是否有Guava的Jar文件:

    • 用解压工具打开你的项目Jar,查看BOOT-INF/lib目录下是否存在guava-xxx.jar
    • 或者用命令行快速检查:jar tf your-project.jar | grep guava,如果有输出说明依赖已包含,没有的话回到第一步重新检查依赖配置
  • 排查依赖冲突
    有些第三方依赖可能会主动排除Guava,导致依赖缺失。可以用以下命令查看依赖树,确认Guava的依赖状态:

    • Maven:mvn dependency:tree | grep guava
    • Gradle:./gradlew dependencies | grep guava
      如果发现有排除项,可以在你的Guava依赖中添加排除规则,或者调整依赖的声明顺序来解决冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:44:17