2014-09-21 115 views
-2
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 

任何人都可以給我一個解決上述錯誤的方法嗎?No class def found java

+1

http://stackoverflow.com/search?q=NoClassDefFoundError – 2014-09-21 18:53:58

+0

可能的重複[爲什麼我會在Java中得到一個NoClassDefFoundError?](http://stackoverflow.com/questions/34413/why-ami-i-越來越-A-NoClassDefFoundError的功能於JAVA) – pamps 2014-09-21 18:55:05

回答

2

很難確定應用程序引發此異常的確切原因,但有一些常見的指針可能會對您有所幫助。

當您在代碼中使用運行時不可用的類時引發異常。在這種情況下,您似乎無法使用org.apache.http.protocol.HttpContext。最有可能的是,您創建了一個包含Amazon AWS jar的應用程序,但缺少Apache HTTPClient jar。

如果您使用gradle/maven創建您的應用程序,請將其包含在您的依賴項中。它是一個普通的Java程序,確保您的類路徑中可以使用所需的JAR(例如,與您當前擁有Amazon jar所在的位置相同)。

2

請檢查您是否有httpcore jar。在我的lib中添加httpcore-4.2.jar之後,我擺脫了這個錯誤。