2012-07-07 36 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文件夹中。