2017-01-14 2 views
0

문제가 있습니다.java 및 httpclient java.lang.NoClassDefFoundError

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"); 

    } 
} 

파일 MANIFEST.MF :

 
Manifest-version: 1.0 
Main-Class: qq 

OS 데비안 8 자바 버전 : 자바 버전 "1.8.0_111" 자바 (TM) SE 런타임 환경 (1.8.0_111-B14를 구축) 자바 핫스팟 (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 

방법이 문제를 해결하려면?

+0

는 매니페스트 파일에'클래스 path'을 추가하는 시도 했습니까? https://docs.oracle.com/javase/tutorial/deployment/jar/downman.html – alayor

답변

0

은 내가 depandances가 자동으로로드되어 있기 때문에 당신이 메이븐 또는 Gradle을를 사용하는 것이 좋습니다.

메이븐 :

<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'