java 和 httpclient java.lang.NoClassDefFoundError

标签 java httpclient

我有问题。

import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;

public class qq {

        public static void main(String[] args) throws UnsupportedEncodingException, IOException {
        HttpClient httpclient = new DefaultHttpClient();
//        HttpPost httppost = new HttpPost("http://192.168.0.102/uploadtest/upload_photo");
        System.out.println("aaaa");

    }
}

文件 list .mf:

Manifest-version: 1.0
Main-Class: qq

操作系统 debian 8 java版本: java版本“1.8.0_111” Java(TM) SE 运行时环境(版本 1.8.0_111-b14) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.111-b14,混合模式)

还有:

javac -cp ./lib/httpclient-4.2.5.jar:./lib/httpcore-4.4.5.jar:./lib/httpmime-4.2.5.jar:./lib/commons-logging-1.2.jar qq.java
jar cfm test.jar manifest.mf qq.class

没问题,没有错误,退出代码 - 0。

我尝试:

# java -jar test.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/impl/client/DefaultHttpClient
        at qq.main(qq.java:18)
Caused by: java.lang.ClassNotFoundException: org.apache.http.impl.client.DefaultHttpClient
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 1 more

如何解决这个问题?

最佳答案

我建议您使用MavenGradle,因为依赖项会自动加载。

Maven:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.1</version>
</dependency>

Gradle :

compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.1'

关于java 和 httpclient java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41655015/

相关文章:

c# - Android和C#之间的加密兼容

java - http 请求免受 Android 攻击

java - 如何使用用户的证书?

java - 如何在 DialogFragment 上定位 EditText

java - 我应该在 throws 子句中抛出 Exception 的子类型吗?

Java,从具有 FireStore 数据的 Map 获取键

java - 如何安装和导入 Java "HttpClient"库

c# - 清除 CookieContainer

ios - Xamarin.iOS-无法安装软件包'System.Net.Http 4.0.0',该软件包不包含任何程序集引用

java - HttpClient 4.1 并不总是返回主机值