java - 即使 jar 包含在编译中,程序也找不到 RequestEntity 类

标签 java http-post noclassdeffounderror apache-commons-httpclient

我构建了一个非常简单的测试程序,以使用 XML 有效负载向网络服务器提交 HTTP Post。我包含了包含 RequestEntity 类的 jar 文件 commons-httpclient-3.1.jar,但是当我运行该程序时,出现以下错误,并且无法确定原因它找不到该类。

我的javac命令:

 javac -verbose -d classes -sourcepath src -cp lib\commons-httpclient-3.1.jar; src\testpartstorepost\PostXML2.java

详细输出显示它加载了RequestEntity.class

[parsing started src\testpartstorepost\PostXML2.java]
[parsing completed 32ms]
[search path for source files: src]
[search path for class files: ***SNIP***
[loading java\io\File.class(java\io:File.class)]
[loading org\apache\commons\httpclient\HttpClient.class(org\apache\commons\httpclient:HttpClient.class)]
[loading org\apache\commons\httpclient\methods\FileRequestEntity.class(org\apache\commons\httpclient\methods:FileRequestEntity.class)]
[loading org\apache\commons\httpclient\methods\PostMethod.class(org\apache\commons\httpclient\methods:PostMethod.class)]
[loading org\apache\commons\httpclient\methods\RequestEntity.class(org\apache\commons\httpclient\methods:RequestEntity.class)]
[loading java\lang\Object.class(java\lang:Object.class)]
[loading java\lang\String.class(java\lang:String.class)]
[loading java\lang\Exception.class(java\lang:Exception.class)]
[checking testpartstorepost.PostXML2]
[loading java\lang\Throwable.class(java\lang:Throwable.class)]
[loading java\net\URI.class(java\net:URI.class)]
[loading org\apache\commons\httpclient\methods\EntityEnclosingMethod.class(org\apache\commons\httpclient\methods:EntityEnclosingMethod.class)]
[loading org\apache\commons\httpclient\methods\ExpectContinueMethod.class(org\apache\commons\httpclient\methods:ExpectContinueMethod.class)]
[loading org\apache\commons\httpclient\HttpMethodBase.class(org\apache\commons\httpclient:HttpMethodBase.class)]
[loading org\apache\commons\httpclient\HostConfiguration.class(org\apache\commons\httpclient:HostConfiguration.class)]
[loading org\apache\commons\httpclient\HttpMethod.class(org\apache\commons\httpclient:HttpMethod.class)]
[loading java\lang\System.class(java\lang:System.class)]
[loading java\io\PrintStream.class(java\io:PrintStream.class)]
[loading java\io\FilterOutputStream.class(java\io:FilterOutputStream.class)]
[loading java\io\OutputStream.class(java\io:OutputStream.class)]
[loading java\lang\Error.class(java\lang:Error.class)]
[loading java\io\IOException.class(java\io:IOException.class)]
[loading java\lang\RuntimeException.class(java\lang:RuntimeException.class)]
[loading org\apache\commons\httpclient\HttpException.class(org\apache\commons\httpclient:HttpException.class)]
[loading java\lang\StringBuilder.class(java\lang:StringBuilder.class)]
[loading java\lang\AbstractStringBuilder.class(java\lang:AbstractStringBuilder.class)]
[loading java\lang\CharSequence.class(java\lang:CharSequence.class)]
[loading java\io\Serializable.class(java\io:Serializable.class)]
[loading java\lang\Comparable.class(java\lang:Comparable.class)]
[loading java\lang\StringBuffer.class(java\lang:StringBuffer.class)]
[wrote classes\testpartstorepost\PostXML2.class]

但是当我运行该程序时,我得到以下信息:

D:\java testpartstorepost/PostXML2
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/httpclient/methods/RequestEntity
Caused by: java.lang.ClassNotFoundException: org.apache.commons.httpclient.methods.RequestEntity
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: testpartstorepost/PostXML2.  Program will exit.

如果需要的话我也可以提供java源代码。我无法确定为什么程序找不到 RequestEntity

编辑

如果我将 java 调用更改为指向正确的类路径,我会更进一步,认为这个问题已经解决了。

java -cp .;..\lib\commons-httpclient-3.1.jar; testpartstorepost/PostXML2

最佳答案

您确定您的类路径正确吗?它是相对路径,因此在哪个目录中启动 javac 很重要。

关于java - 即使 jar 包含在编译中,程序也找不到 RequestEntity 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28635865/

相关文章:

javascript - Node.js 用户注册数据存储在哪里

java - 从 Cygwin 终端运行 JUnit 4 时为 "NoClassDefFoundError"

java - 我应该将源文件和类文件捆绑在同一个 JAR 中吗?

java - 当 JFrame 中有背景图像时将 JButtons 移至左侧

java - 确保所有集合元素都为非空的现有实用程序方法

java - 类路径出现 NoClassDefFoundError

java - 错误 : A JNI error has occurred, 请检查您的安装并重试。NoClassDefFounderror: DRPC ExecutionException

java - 为什么在这种情况下它不执行数学运算?

python - 如何在 Python 中发送和接收 HTTP POST 请求

php - 遍历 $_POST 数组以显示字段名称