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

Spring Boot项目IDE运行正常,java -jar启动报BeanCreationException及NoClassDefFoundError

问题根因

你使用system作用域引入本地外部jar包,Spring Boot Maven打包插件默认不会将该作用域的依赖打入最终可执行jar的BOOT-INF/lib目录。IDE运行时可读取本地路径的jar因此运行正常,直接执行jar包时无法加载对应类,就会抛出你遇到的报错。

解决方案

方案1(最小改动快速生效)

修改spring-boot-maven-plugin配置,开启包含system作用域依赖的开关,修改后的插件配置如下:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <fork>true</fork>
        <mainClass>com.project.fingerprintId.FingerprintIdApplication</mainClass>
        <!-- 新增以下配置 -->
        <includeSystemScope>true</includeSystemScope>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

修改后重新执行mvn clean package打包,再运行生成的jar包即可。

方案2(长期使用推荐规范方案)

将本地ImageSDK.jar安装到本地Maven仓库,之后可完全移除依赖中的scope和systemPath配置,按普通依赖引用即可。
安装命令参考(替换为你本地jar的实际路径):

mvn install:install-file -Dfile=/path/to/your/ImageSDK.jar -DgroupId=ImageSDK -DartifactId=ImageSDK -Dversion=1.0 -Dpackaging=jar

安装完成后修改原有依赖配置:

<dependency>
    <groupId>ImageSDK</groupId>
    <artifactId>ImageSDK</artifactId>
    <version>1.0</version>
</dependency>

该方案规避了system作用域的各类隐性问题,多人协作场景下通用性更强。

内容的提问来源于stack exchange,提问作者Hristo.L

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:36:02