# Table of Contents
# JAR 파일이란?
JAR(Java Archive)
는 자바 애플리캐이션을 효율적으로 배포하기 위해 만들어진 파일이다. JAR
파일은 다음 요소들로 구성된다.
- 클래스 파일
- 리소스 파일
- 메니페스트 파일(
MANIFEST.MF
)
# JAR 생성하기
우선 MyProject
폴더를 생성하고 이 폴더로 이동한다.
$ mkdir MyProject
$ cd MyProject
앱의 시작점 역할을 할 MyApp.java
를 생성한다.
// MyApp.java
import library.*;
public class MyApp {
public static void main(String[] args) {
MyLibrary library = new MyLibrary();
library.printSomething("Something");
}
}
library
폴더를 생성하고 이 폴더로 이동한다.
$ mkdir library
$ cd library
MyLibrary.java
를 생성한다.
// MyLibrary.java
package library;
public class MyLibrary {
public void printSomething(String something) {
System.out.println(something);
}
}
생성된 디렉토리의 구조는 다음과 같다.
$ tree
.
├── MyApp.java
└── library
└── MyLibrary.java
1 directory, 2 files
MyLibrary
와 MyApp
를 각각 컴파일한다.
$ javac library/MyLibrary.java
$ javac MyApp.java
jar 파일을 생성하려면 MANIFEST.MF
파일이 필요하다. 이 파일에는 앱의 시작점 역할을 하는 파일, 클래스 파일 등의 정보를 나열한다. 보통 META-INF
폴더에 위치한다.
$ mkdir META-INF
$ cd META-INF
$ touch MANIFEST.MF
<!-- MANIFEST.MF -->
Main-class: MyApp
이제 다음 명령어를 입력하면 MyApp.jar
파일로 압축할 수 있다.
$ jar -cvmf META-INF/MANIFEST.MF MyApp.jar MyApp.class library/MyLibrary.class
$ tree
.
├── META-INF
│ └── MANIFEST.MF
├── MyApp.class
├── MyApp.jar
├── MyApp.java
└── library
├── MyLibrary.class
└── MyLibrary.java
# JAR 실행하기
다음 명령어를 입력하면 JAR
파일을 실행할 수 있다.
$ java -jar MyApp.jar
something
# JAR 압축 풀기
다음 명령어를 사용하면 압축을 풀 수 있다.
$ jar xvf MyApp.jar