13

我正在尝试运行 AWS SDK for java 附带的 DynamoDB 示例。我使用 eclipse 来做,并将aws-java-sdk-1.3.2.jar文件添加到项目的构建路径中。编译当然很好,但我得到一个名为NoClassDefFoundError. 我知道这意味着该类在编译时就在那里,但在运行时找不到。我尝试将 jar 文件添加到环境变量 - 没有帮助。我也查了一下,在其他项目上使用其他外部jar文件也没有问题。windows 和 linux 都有同样的问题。

帮助任何人?

谢谢,本。

堆栈跟踪:

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)
4

2 回答 2

15

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

于 2013-06-06T13:30:09.663 回答
2

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

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

于 2012-06-13T16:21:27.650 回答