Apache HttpClient抛出NoClassDefFoundError

rau*_*uch 7 java httpclient

我有:ubuntu-9.10-desktop-amd64 + NetBeans6.7.1

  1. 我刚从http://hc.apache.org/downloads.cgi下载了"Commons HttpClient 3.1(legacy)" .
  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();
    }
    
    Run Code Online (Sandbox Code Playgroud)
  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***
    
    Run Code Online (Sandbox Code Playgroud)

怎么了?

我试着下载"HttpClient 4.0(GA)".但结果是一样的.

mha*_*ler 14

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


bma*_*ies 5

您需要依赖项.如果你使用了maven,他们就会自己取而代之.既然你不是,你必须下载commons-logging(也许还有其他人)并将它们扔进去.