Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AWS SDK for java运行程序时发生NoClassDefFoundError_Java_Amazon Web Services_Noclassdeffounderror - Fatal编程技术网

使用AWS SDK for java运行程序时发生NoClassDefFoundError

使用AWS SDK for java运行程序时发生NoClassDefFoundError,java,amazon-web-services,noclassdeffounderror,Java,Amazon Web Services,Noclassdeffounderror,我正在尝试运行AWSSDKforJava附带的DynamoDB示例。我使用eclipse来完成,并将aws-java-sdk-1.3.2.jar文件添加到项目的构建路径中。编译当然很顺利,但我得到一个名为NoClassDefFoundError的运行时异常。 我知道这意味着该类在编译时存在,但在运行时找不到。 我尝试将jar文件添加到env变量中,但没有帮助。 我也检查了,在其他项目上使用其他外部jar文件没有问题。 windows和linux上都存在相同的问题 有人帮忙吗 谢谢你,本 堆栈跟踪

我正在尝试运行AWSSDKforJava附带的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)
线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/commons/logging/LogFactory 位于com.amazonaws.services.dynamodb.AmazonDynamoDBClient.(AmazonDynamoDBClient.java:62) 在amazondynamodsample.init(amazondynamodsample.java:62) 位于amazondynamodsample.main(amazondynamodsample.java:67)
看起来您的AWS JAR需要一些额外的JAR来实现已使用但非AWS的项(比如您的日志记录)


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

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

请发布堆栈跟踪?是否添加了apache commons库jar文件?可以在这里找到:是的,还有编解码器和HTTP客户端。所有已添加到生成路径您是否尝试重新生成项目?还要检查lib文件夹,看看是否可以在那里找到jar文件。找出什么jar?lib中有aws-java-sdk-1.3.2-sources.jar和aws-java-sdk-1.3.2-javadoc.jar。它们不相关,对吗?我还得到了一个名为third party的目录,这个目录包含一个commons-logging-1.1.1.jar,它也在构建路径中……您猜对了,源代码和javadoc jar不是您需要添加的内容。第三方commons-logging-1.1.1.jar文件包含您寻找的缺少的类。另外,如果您想调试到AWS库中,可以将AWS库配置为“包含源代码”,然后连接“源代码”JAR文件。commons-logging-1.1.1.JAR已经在构建路径中。我还在jar中手动找到org/apache/commons/logging/LogFactory.class。您能想出JVM找不到它的任何原因吗?可能您的运行时路径与构建路径不同。检查运行配置,看看它是否还包括commons日志jar文件。你是对的!构建路径应该包含aws-java-sdk-1.3.2.jar,运行时路径(引导条目)应该包含jackson-core-asl-1.8.7.jar、httpclient-4.1.1.jar、httpcore-4.1.jar、commons-logging-1.1.1.jar、commons-codec-1.3.jar。你能提供一个指向这个神奇的“第三方”的web链接吗?在jar依赖项中没有这样的文件夹。Omg。。。我已经围绕这个问题讨论了很久了。。。第三方库。。。一个。。。