没有类def发现java

时间:2014-09-21 18:50:37

标签: java http amazon-s3

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/protocol/HttpContext
 at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:119)
 at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:103)
 at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:362)
 at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:344)
 at Gethtml_fromS3.main(Gethtml_fromS3.java:16)
Caused by: java.lang.ClassNotFoundException: org.apache.http.protocol.HttpContext
 at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
 ... 5 more

任何人都可以为我提供上述错误的解决方案吗?

2 个答案:

答案 0 :(得分:2)

很难确定应用程序引发此异常的确切原因,但有一些常见的指针可能会对您有所帮助。

当您在代码中使用运行时无法使用的类时,会引发异常。在这种情况下,您似乎无法使用org.apache.http.protocol.HttpContext。最有可能的是,您创建的应用程序包含Amazon AWS jar,但缺少Apache HTTPClient jar。

如果您使用gradle / maven创建应用程序,请将其包含在依赖项中。它是一个简单的Java程序,确保您的类路径中可用的JAR(例如,您当前拥有Amazon jar的位置)。

答案 1 :(得分:2)

请检查您是否有httpcore jar。将httpcore-4.2.jar添加到我的lib后,我摆脱了这个错误。