[Java] 터미널(CLI) 에서 Runnable Jar 만들기 (+ Manifest 파일 만들기) Java

오늘은 커맨드 라인 인터페이스 (=CLI, 터미널) 에서 명령어로
Runnable Jar를 한번 만들어 보겠습니다.

일단 먼저 !!! 영어 잘하시는 분들은 제 블로그보다 좋은 ㅋㅋ

JAR 파일 제작에 관련한 오라클 Tutorial 원문 링크 << 요기를 보시면 더 좋습니다.

Jar 자체를 만드는 방법은 사실 여러가지가 있지만 매번 코드변경이 있을 시에는 다시 Jar를 말아줘야 하는 번거로움이 있기에 이것을 저는 Shell script 로 짜놓고 빌드시마다 한번씩 다시 말아주는 방법을 썼습니다.

===============================

이 작업을 할때 가장 중요한것은 path 설정인데요.
일단 예를 들어볼 Path 세팅 상태를 한번 보시죠.


/home/hello/project 예하 Dir Tree 입니다.

우리가 생성하려는 파일은 현재 output.jar 이고요
lib 안의 a.jar 와 b.jar 는 내가 만든 프로젝트에서 사용되는 external library 입니다.

초기에는 Main.class 와 output.jar 이 없어야 합니다.

이 두개를 만들겁니다.

그럼 순서대로 진행해보죠.




1. JDK 설치 (JRE는 안됨)

> 이건 알아서 개발 환경에 맞게 하시길 바랍니다 ^^

2. java 파일 컴파일

$ cd /home/hello/project # 홈폴더로 이동
$ javac -encoding "UTF-8" -d /home/hello/project/lib -cp lib/a.jar:lib/b.jar src/Main.java

# 만약에 나중에 jar 실행 했을때, version 어쩌고 에러가 뜬다면 아래와 같이
# 자신이 처음에 프로그램을 작성한 환경에 맞는 JDK 버전으로 컴파일해줘야 합니다.

# java 1.7 버전으로 컴파일
$ javac -source 1.7 -target 1.7 -encoding "UTF-8" -d ${INIPAY_CANCEL_DIR} -cp ${classPath} src/Main.java 

# 이렇게 하고나면 홈폴더에 Main.class 가 생성됨

3. Manifest 파일 제작

Manifest 파일은 일단 아래와 같습니다.

====== Manifest.txt ======

Manifest-Version: 1.0
Created-By: MY_NAME
Class-Path: lib/a.jar lib/b.jar
Main-Class: Main

=====================

주의해야하는 항목들만 설명을 붙일게요.

Class-Path : 생성할 JAR 파일의 Path 기준으로 참조해야할 파일들의 상대경로를 띄어쓰기 기준으로 나열해줍니다.
Main-Class :  JAR 실행 시 Entry-point가 될 public static void main() 을 가지고 있는 클래스명

4. jar 파일 생성

$ cd /home/hello/project
$ jar cfm /home/hello/project/output.jar src/Manifest.txt Main.class lib/a.jar lib/b.jar

뒤쪽의 파란색 파일은 Entry Point 가 위치한 클래스 코드를 담은 .class 파일 이구요
뒤에 상대경로를 이용해 덧붙이는 파일들은 내가 Manifest.txt 에서 지정한 Class-Path 항목과 동일해야 합니다.

즉 !!!!

JAR 명령어를 날릴때 뒤에 붙이는 파일들의 PATH

= Manifest.txt 의 Path들

= 생성되는 Jar가 위치하는 곳을 기준으로한 참조 파일들의 상대경로

그럼 이제 한번 실행해 보세요!

$ java -jar output.jar arg1 arg2 ...




통계 위젯 (블랙)

12154
571
196097

GoogleAdsenseResponsive

Cluster map