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

Windows Kotlin项目调用ClasspathPropertiesFileCredentialsProvider报ClassNotFoundException

问题根因

你遇到的java.lang.ClassNotFoundException: com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider错误本质是运行时环境缺失AWS SDK核心依赖,编译阶段能通过是因为Gradle的implementation依赖仅保证编译期可见,如果你直接运行打包后的未携带依赖的jar包、或者运行配置没有正确关联依赖库,就会出现运行时类找不到的问题,你之前的Swing项目应该是已经配置了依赖打包逻辑,所以可以正常运行。

解决方案

场景1:IDE本地运行时抛出错误

  • 检查你当前项目的运行配置,确认Include dependencies with 'Implementation' scope选项已勾选(IDEA的配置路径:运行/调试配置 -> 修改选项 -> 从模块类路径包含依赖项)
  • 确认AWSCredentials.properties文件放在src/main/resources目录下,确保编译后会被打包到classpath根目录

场景2:打包成独立jar运行时抛出错误

你需要给Gradle配置fat jar(可执行带依赖的jar)打包逻辑,在build.gradle中添加如下配置:

jar {
    manifest {
        // 替换为你自己的主类全路径,Kotlin主类默认后缀为Kt
        attributes 'Main-Class': 'com.example.YourMainClassKt'
    }
    // 把所有依赖的包都打进jar
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
    // 排除重复的签名文件避免打包冲突
    exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}

配置完成后重新执行gradle build,生成的jar包就包含了所有AWS SDK的依赖类,运行时不会再报类找不到的错误。

可选校验方法

如果你想确认依赖是否正确携带,可以解压生成的jar包,检查是否存在com/amazonaws/auth/ClasspathPropertiesFileCredentialsProvider.class文件,存在则说明依赖打包成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:45:04