当前位置: 首页 > 面试题库 >

HttpClient NoClassDefFoundError

易流觞
2023-03-14
问题内容

我正在尝试从HttpClient
4.0.1运行示例应用程序。它是示例部分中的文件ClientMultiThreadedExecution.java。我把在classpath这些文件:apache- mime4j-0.6.jar; commons-codec-1.3.jar; commons-logging-1.1.1.jar;
httpclient-4.0.1.jar; httpcore-4.0.1.jar;
httpmime-4.0.1.jar并且文件正确编译。在运行时,出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

我是否缺少参考?似乎是类路径错误,但是我不知道要包含哪个jar文件?预先感谢您的帮助。


问题答案:

此异常表明 运行时 类路径中缺少所提到的类。

有几种方法可以指定运行时类路径,具体取决于您如何执行程序。由于一个不错的IDE透明地从您手中掌握了所有这些功能,因此我敢打赌,您正在命令提示符下运行它。

如果通过java.exe -jar或双击文件将其作为JAR文件运行,则需要Class-Path在JAR
MANIFEST.MF文件的条目中指定类路径。请注意,每次执行JAR时,%CLASSPATH%环境变量和-cp-classpath参数都会被
忽略

如果您通过来将其作为“普通香草”
Java应用程序运行java.exe,则需要在-cp-classpath参数中指定它。请注意,无论何时使用此参数,%CLASSPATH%都会
忽略 环境变量。

无论哪种方式,类路径都应存在(半)用逗号分隔的JAR文件路径字符串(绝对路径或相对于当前工作目录的路径)。例如

java -cp。; / path / to / file1.jar; /path/to/file2.jar com.example.MyClass

(如果您使用的是Unix / Linux,请使用冒号而不是分号作为路径分隔符)



 类似资料:

相关阅读

相关文章

相关问答