我有:ubuntu-9.10-desktop-amd64 + NetBeans6.7.1
但是,如果我尝试添加包含以下内容的任何语句:
public static void main(String[] args) {
HttpClient client = new HttpClient();
}
编译得很好。
但是当我运行这个项目时,我收到以下错误:
***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 :(得分:14)
您所遇到的只是缺少依赖性。 Java开发人员习惯于自己收集依赖项,尤其是。当涉及到日志框架时。 下载commons-logging并将其添加到类路径中。与httpclient所需的所有其他依赖项一样。
答案 1 :(得分:5)
您需要依赖项。如果你使用了maven,他们会自己取而代之。既然你不是,那么你必须下载公共记录(或许是其他人)并将它们扔进去。
答案 2 :(得分:2)
我想更新任何来到这里的人,所有答案,尤其是RocketSurgeon,都帮助我解决了我的问题。在我的问题得到解决之前,我不得不下载公共httpclient(遗留3.1),日志记录和编解码器。
另外值得注意;使用Eclipse我必须提取.jar文件并使用“add library”将它们导入Buildpath。仅仅添加.zip文件无效。
答案 3 :(得分: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%左右,但从不介于
之间