2009-11-21 38 views
7

我有:Ubuntu的9.10,桌面AMD64 + NetBeans6.7.1的Apache的HttpClient抛出一个NoClassDefFoundError的

  1. 我刚刚下载的 “Commons的HttpClient 3.1(传统)” 从http://hc.apache.org/downloads.cgi
  2. 我使用IDE NetBeans创建了新的应用程序。
  3. 我专注于项目 - >库 - >添加JAR /文件夹,并在这里添加commons-httpclient-3.1.jar
  4. 现在,我可以编写“import org.apache.commons.httpclient。*;”还行吧。
  5. 但是,如果我尝试添加任何陈述包括这样的事情:

    public static void main(String[] args) { 
        HttpClient client = new HttpClient(); 
    } 
    
  6. 它编译好。

  7. 但是当我运行这个项目,我收到以下错误:

    ***Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 
        at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:66) 
        at SimplestAppl.Main.main(Main.java:22) 
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
        at java.security.AccessController.doPrivileged(Native Method) 
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:319) 
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
        at java.lang.ClassLoader.loadClass(ClassLoader.java:264) 
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332) 
        ... 2 more 
    Java Result: 1*** 
    

有什么不对?

我试着下载“HttpClient 4.0(GA)”。但结果是一样的。

+0

您需要添加公用日志记录库。如果你对如何做到这一点感到困惑:http://stackoverflow.com/questions/5893349/how-to-add-library-files-in-netbeans – 2013-08-04 14:35:54

回答

14

你正在经历的只是一个缺失的依赖。 Java开发人员习惯于自己收集他们的依赖关系,尤其是,当涉及到日志框架。 下载commons-logging并将其添加到您的类路径中。与httpclient所需的所有其他依赖关系一样好。

+0

另外,确保你使用/ Project/WebContent/WEB -INF/lib目录/ – tricknology 2015-03-12 07:49:14

5

您需要依赖关系。如果你使用maven,他们会自己动手。因为你不是,你必须去下载公共日志(也许还有其他人),并把它们扔进去。

1

如果你不想使用Maven,然后

- build and launch, look at missing dependencies 
- identify vendor, fetch the jar to resolve dependencies 
- rinse/repeat until you have all dependencies satisfied 
- done 

反正你将永远不会知道,如果是100%供应依赖关系。它通常在150%或99%左右,但从来没有在

2

我想更新任何人来到这里的事实,所有的答案,特别是RocketSurgeon的,帮助我解决我的问题在同一意义上。在解决问题之前,我必须下载commons httpclient(legacy 3.1),日志记录和编解码器。

另外值得注意;使用Eclipse我必须提取.jar文件并使用“添加库”将它们导入到Buildpath中。没有与只加入.zip文件工作。

相关问题