NoClassDefFoundError 在使用 AWS 开发工具包 for java 运行程序时出错

我正在尝试运行适用于 Java 的 AWS 开发工具包附带的 DynamoDB 示例。我使用eclipse执行此操作,并将该文件添加到项目的构建路径中。编译当然很好,但是我得到了一个名为 的运行时异常。我知道这意味着该类在编译时就在那里,但在运行时找不到。我尝试将jar文件添加到env变量 - 没有帮助。我还检查了一下,在其他项目上使用其他外部jar文件没有问题。在Windows和Linux上都有同样的问题。aws-java-sdk-1.3.2.jarNoClassDefFoundError

帮助任何人?

谢谢,本。

堆栈跟踪:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at com.amazonaws.services.dynamodb.AmazonDynamoDBClient.<clinit>(AmazonDynamoDBClient.java:62)
    at AmazonDynamoDBSample.init(AmazonDynamoDBSample.java:62)
    at AmazonDynamoDBSample.main(AmazonDynamoDBSample.java:67)

答案 1

aws-java-sdk-1.3.2 文件夹中,您会发现另一个名为“第三方”的文件夹。Amazon SDK 使用的所有第三方文件都在该文件夹中,包括 Apache Common Logging。您必须将所需文件与 AWS 开发工具包 jar 文件一起添加到类路径中。


答案 2

看起来您的 AWS JAR 需要一些额外的 JAR 来实施已使用但非 AWS 的项目 (如您的案例日志记录中所示)。

如果您下载了包含“lib”目录的可分发组件,那么您很可能只将 Eclipse 配置为使用 AWS JAR 而不是所有必需的 JAR,包括 AWS,也可能包括“lib”目录中的所有 JAR。


推荐