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

IntelliJ构建AWS应用JAR后抛出software.amazon.awssdk.regions.Region类找不到异常求助

问题分析与解决方案

核心问题

你的pom.xml中software.amazon.awssdk:regions依赖的<scope>被设置为provided,这个作用域表示该依赖仅在编译和测试阶段可用,打包时不会被包含到最终JAR中。

IntelliJ运行应用时,会自动将所有依赖(包括provided作用域的)加入类路径,所以本地运行正常;但打包后的JAR中不包含该依赖,执行时JVM无法找到对应的类,就会抛出java.lang.ClassNotFoundException。

修复步骤

1. 调整regions依赖的作用域

将regions依赖的<scope>provided</scope>删除(默认作用域为compile,会被打包进JAR),修改后的依赖如下:

<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>regions</artifactId>
    <version>2.20.38</version>
</dependency>

2. 确保打包为可执行的胖JAR

如果仅调整作用域仍有问题,说明你打包的是仅包含自身代码的普通JAR,而非包含所有依赖的胖JAR。可以通过Maven插件实现:
在pom.xml的<build><plugins>中添加maven-assembly-plugin配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.6.0</version>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>
                <mainClass>你的主类全路径</mainClass>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

执行mvn clean package后,会生成带-jar-with-dependencies后缀的可执行JAR,直接用java -jar 文件名.jar运行即可。

3. 验证修复效果

重新打包后,解压JAR文件,检查software/amazon/awssdk/regions/Region.class是否存在,确认依赖已被正确包含。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:55:18