我正在尝试运行AWS SDK for Java附带的DynamoDB示例。我是用eclipse做的,并将aws-java-sdk-1.3.2.jar
文件添加到项目的构建路径中。编译当然很好,但我得到一个名为NoClassDefFoundError
的运行时异常。
我知道这意味着该类在编译时已存在,但在运行时无法找到。
我尝试将jar文件添加到env变量 - 没有帮助。
我也检查过,在其他项目中使用其他外部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)
答案 0 :(得分:12)
在 aws-java-sdk-1.3.2 文件夹中,您会找到另一个名为“ 第三方 ”的文件夹。 Amazon SDK使用的所有第三方文件都在该文件夹中,包括Apache Common Logging。您必须将所需文件与AWS SDK jar文件一起添加到类路径中。
答案 1 :(得分:1)
看起来您的AWS JAR需要一些额外的JAR来实现已使用但非AWS的项目(例如在您的案例中记录)。
如果您下载了包含“lib”目录的distributable,则可能只是将Eclipse配置为使用AWS JAR而不是所有必需的JAR,包括AWS以及“lib”目录中的所有JAR。