2012-07-07 39 views
0

當我想使用某個jar文件時,出現「java.lang.NoClassDefFoundError」異常。java.lang.NoClassDefFoundError

Exception in thread "main" java.lang.NoClassDefFoundError: . 
org/apache/http/client/ClientProtocolException 
    at ?uk.org.taverna.server.client.connection.ConnectionFactory.getConnection(ConnectionFactory.java:63) 
    at uk.org.taverna.server.client.Server.<init>(Server.java:99) 
    at uk.org.taverna.server.client.Server.<init>(Server.java:126) 
    at uk.org.taverna.server.client.Server.connect(Server.java:293) 
    at uk.org.taverna.server.usage.ServerUsage.Usage(ServerUsage.java:24) 
    at Test.main(Test.java:23) 
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.ClientProtocolException 
    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:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 

我導入此jar文件到圖書館罐子,當我打電話在jar文件我得到這個異常的方法。順便說一句,這個jar文件是由我自己寫的,我可以正確運行它。 我不知道如何解決這個問題,我在java中是相當新的。

在此先感謝。

桑迪

+0

它可以找到org.apache.http.client.ClientProtocolException。這可能是由於缺少一個jar文件,正如Rafael所建議的。 – 2012-07-07 17:36:23

回答

4

您至少還需要HttpClient jar庫。你可以在Apache Commons的網站上找到它。

Jar庫可能並經常引用另一個jar庫。在您使用的案例庫中,指的是Apache Commons框架中的HttpClient庫。您需要將此庫添加到您的項目中。

+0

答案是絕對正確的,但我想知道爲什麼HttpClient在通過maven使用時不作爲流利hc的傳遞依賴? – 2015-05-13 16:38:08

+0

@Jan我認爲這會更好地解決[團隊](http://hc.apache.org/httpclient-3.x/team-list.html)這個問題,開發這個庫。 – 2015-05-14 16:38:39

+0

我發現產品沒問題。當試圖在4.4.1版本中導入'fluent-hc'時,剛剛經歷了一些奇怪的行爲。然後用google搜索這個應該不存在。我用'4.3.6'去了,並且所有的傳遞依賴按照預期設置。乾杯 – 2015-05-18 09:03:43

1

你應該在應用程序目錄中的libs文件夾中使用你應用的所有jar文件。 因此如果您使用apachecommons jar文件複製並將jar文件粘貼到應用程序中的libs文件夾中。