IDEA 생 성 실행 가능 한 jar 패키지(제3자 jar 패키지 포함)프로 세 스 상세 설명

최근 에 현 망 은 한 장면 에 적합 하도록 데 이 터 를 처리 해 야 한다.스 크 립 트 를 만들어 서 실현 하도록 하 겠 습 니 다.절차 가 많 고 다른 서비스 인 터 페 이 스 를 호출 해 야 하기 때문에 셸 스 크 립 트 를 사용 하여 실현 하 는 것 이 어렵 습 니 다.그래서 셸 스 크 립 트 를 사용 하여 자바 가 jar 패 키 지 를 실행 할 수 있 는 방식 으로 이 루어 질 것 이 라 고 생각 했 습 니 다.그 동안 많은 문제 가 발생 했 습 니 다.이 글 을 써 서 기록 하 겠 습 니 다.
IDEA 자바 프로젝트 만 들 기
IDEA 를 열 고 왼쪽 상단 메뉴 항목 에서 File->New->Project->Java->Next->Next->항목 이름(test)을 순서대로 선택 하 십시오.

새로운 자바 프로젝트 를 만 들 었 습 니 다.
IDEA 가 져 오기 에 필요 한 3 자 jar 패키지
프로젝트 에서 httpclient 로 요청 을 보 내 고 fastjson 으로 데 이 터 를 변환 하 는 데 사 용 했 기 때문에 관련 jar 패 키 지 를 프로젝트 의존 으로 가 져 와 야 합 니 다.
오른쪽 키 항목 이름->Open Module Setting(기본 단축 키 F4)선택->열 린 탄 상자 왼쪽 에 Libraries--->탄 상자 중간 에"+"번 호 를 클릭->자바->팝 업 선택 상자 에서 의존 하 는 모든 jar 패 키 지 를 선택 하 십시오(모든 jar 패 키 지 를 같은 library 에 넣 습 니 다)->OK 확인

비 즈 니스 논리 작성
업무 논 리 를 작성 하고 입 구 는 main 함수 호출 을 사용 합 니 다.다음은 코드 샘플 입 니 다.

package com.demo;

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;

public class Main {
  public static void main(String[] args) {
    String url = "http://www.baidu.com";
    String result = doHttpGet(url, new HashMap<>());
    System.out.println(result);
  }

  public static String doHttpGet(String url, Map<String, String> param) {
    //   Httpclient  
    CloseableHttpClient httpclient = HttpClients.createDefault();

    String resultString = "";
    CloseableHttpResponse response = null;
    try {
      //   uri
      URIBuilder builder = new URIBuilder(url);
      if (param != null) {
        for (String key : param.keySet()) {
          builder.addParameter(key, param.get(key));
        }
      }
      URI uri = builder.build();
      //   http GET  
      HttpGet httpGet = new HttpGet(uri);
      //     
      response = httpclient.execute(httpGet);
      //          200
      if (response.getStatusLine().getStatusCode() == 200) {
        resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      try {
        if (response != null) {
          response.close();
        }
        httpclient.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
    return resultString;
  }
}
jar 패키지 생 성 규칙
오른쪽 단추 항목 이름--->Open Module Setting(기본 단축 키 F4)선택--->열 린 탄 상자 왼쪽 Artifacts 선택

가운데"+"번 호 를 클릭 하고 JAR--->From modules with dependencies 를 선택 하 십시오.

Main class 오른쪽 컴퓨터 폴 더 아이콘 입 니 다.main 방법 을 만 드 는 종 류 를 선택 하 십시오.

extract to the target Jar:의존 하 는 3 자 jar 가방 을 대상 jar 가방 에 포장 하 겠 다 는 뜻 입 니 다.이런 방식 으로 포장 한 jar 가방 은 최종 적 으로 jar 파일 이 하나 밖 에 없습니다.저 는 개인 적 으로 좋아 합 니 다.
copy to the output directory and link via manifest:의존 하 는 jar 패 키 지 를 특정한 경로 로 복사 하고 mainifest 를 통 해 링크 합 니 다.이 경우 의존 하 는 3 자 jar 패 키 지 는 독립 된 jar 패키지 로 존재 합 니 다.
Directry for META-INF/MAIFest.MF:mainifest 파일 생 성 경 로 를 지정 합 니 다.만약 에 위 에서 copy to the output directory and link via manifest 를 선택 했다 면 이 파일 은 생 성 된 jar 가방 을 같은 디 렉 터 리 에 두 어야 합 니 다.그렇지 않 으 면 생 성 된 jar 가방 이 제3자 jar 가방 을 참조 하지 못 하 는 방식 이 나타 날 것 입 니 다.여기 서 제3자 jar 가방 을 대상 jar 가방 에 포장 합 니 다.이 문제 가 존재 하지 않 기 때문에 기본 경 로 를 사용 하면 됩 니 다.
OK 를 누 르 면 Output directory 의 경 로 를 기억 하고 경 로 를 사용자 정의 할 수 있 습 니 다.

그리고 OK 를 눌 러 주세요.
jar 패키지 생 성
클릭 Build--->Build Artifacts

위 에 정 의 된 jar 가방 을 볼 수 있 습 니 다.

Build:jar 패 키 지 를 처음 생 성 할 때 Build 를 선택 하여 jar 패 키 지 를 생 성 합 니 다.
Rebuild:뒤에 프로그램 이 수정 되면 Rebuild 만 실행 하면 됩 니 다.
jar 패 키 지 를 처음 생 성하 기 때문에 Build 를 클릭 하고 IEDA 작업 이 끝나 면 F:\javacode\\test\out\artifacts\\testjar 경로 에서 주소 표시 줄 에"cmd"를 입력 하고 명령 행 프로그램 을 호출 합 니 다.
명령 행 에 자바-jar test.jar 리 턴 을 입력 하 십시오:

내용 반환,jar 패키지 실행 성공 설명.
test.jar 파일 을 다른 경로 로 복사 하여 자바-jar test.jar 를 다시 실행 하여 검증 할 수 있 으 며,정상적으로 실행 할 수 있 으 며,jar 패키지 가 성공 적 으로 포장 되 었 음 을 설명 합 니 다.

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기