반응형
JAR의 Manifest file 활용
Manifest 파일 활용 : 기초
- JAR 파일은 내부의 manifest 파일을 활용하여 다양한 기능을 지원 (ex. 전자서명, 버전관리, 패키징 등)
- manifest 파일은 JAR 파일에 패키징된 파일들에 대한 정보를 가지고 있는 특별한 파일
- manifest 가 가지고 있는 "meta" 정보를 제단하여 JAR 파일을 여러 목적으로 사용 가능
기본 manifest 이해 (Understanding the Default Manifest)
(참조 - Understanding the Default Manifest - Oracle docs)
- JAR 파일 생성시 자동으로 manifest 파일 생성
- 항상 META-INF/MANIFEST.MF 경로에 하나의 manifest 파일이 존재
- 기본 manifest 파일은 Manifest 버전(Manifest-version), 작성자(Created-By) 항목 내용으로 구성
- "header: value"
- manifest 파일 정보는 JAR 파일 활용 의도에 따라 항목 추가 가능
테스트
HelloWorld > JAR 파일 생성 > MANIFEST.MF 파일 확인 (Java Decompiler)
[ Hello.java ]
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World Application!!");
}
}
|
JAR 파일 생성
Hello.java 컴파일 > 컴파일한 Hello.class를 HelloApp.jar JAR 파일로 생성
javac Hello.java jar cvf HelloApp.jar Hello.class |
[ META-INF/MANIFEST.MF ]
Manifest-Version: 1.0
Created-By: 1.8.0_292 (AdoptOpenJDK)
|
Manifest 파일 수정 (Modifying a Manifest File)
(참조 - Modifying a Manifest File - Oracle docs)
- jar cvmf <MANIFEST.MF> <jar-file> <input-file(s)>
- c: JAR 파일 생성
- m: 텍스트 파일의 정보를 JAR 파일의 manifest 파일에 추가
- f: 결과값(output)이 특정 JAR 파일에 가도록 설정
- <manifest-addition>: manifest에 추가할 항목을 가지고 있는 파일
- <input-file(s)>: JAR 파일에 들어갈 파일(들) - 띄어쓰기로 구분
- <jar-file>: JAR 파일의 이름
- manifest 파일의 항목은 UTF-8 인코딩 되어야 한다.
[ MANIFEST.MF ] 추가/변경 항목
Created-By: developer
|
jar cvmf MANIFEST.MF HelloApp.jar Hello.jar |
HelloApp.jar 압축해제 > META-INF > MANIFEST.MF 확인
tar -xvf HelloApp.jar cd META-INF cat MANIFEST.MF |
반응형
'JAVA 자바 > JAVA 기초' 카테고리의 다른 글
[Java 기초 #5] maven jar - no main manifest attribute (0) | 2022.07.28 |
---|---|
[Java 기초 #3] Manifest file (일반) (0) | 2021.05.17 |
[Java 기초 #2] JAR 파일 (0) | 2021.05.17 |