2009-11-21 36 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文件工作。

相關問題