使用AWS SDK for java运行程序时出现NoClassDefFoundError

我试图运行AWS SDK for Java附带的DynamoDB示例。 我是用eclipse做的,并将aws-java-sdk-1.3.2.jar文件添加到项目的构建路径中。 编译当然很好,但我得到一个名为NoClassDefFoundError的运行时exception。 我知道这意味着该类在编译时存在但在运行时无法找到。 我尝试将jar文件添加到env变量 – 没有帮助。 我也检查过,在其他项目中使用其他外部jar文件没有问题。 Windows和Linux上的问题相同。

帮助任何人?

谢谢,本。

堆栈跟踪:

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

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

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

如果您下载了包含“lib”目录的distributable,则可能只是将Eclipse配置为使用AWS JAR而不是所有必需的JAR,包括AWS以及“lib”目录中的所有JAR。