티스토리 뷰
Java Archive(JAR)은 메니페스트 파일로 설명할 수 있는데, JAR파일 형식은 Java클래스 파일과
리소스 및 메타데이터를 단일 파일로 패키지하는 데 사용되는 압축 파일 형식이다.
매니페스트 파일은 JAR파일 자체에 대한 메타 데이터를 제공하는데 사용된다.
매니페스트 파일은 다음과 같은 정보가 포함되어있다.
1. Main-class: JAR 파일 실행시 애플리케이션 진입 메인 클래스 지정
2.Class-Path: JAR파일에 대한 클래스 경로 종속성 지정 (애플리케이션에 필요한 클래스가 포함된
다른 JAR혹은 디렉토리를 포함할 수 있음)
3. Manifest-Version: 매니페스트 파일 형식의 버전
4. 작성자: JAR 파일을 생성하는데 사용된 도구, 버전, 작성자 , 시스템 식별
해당 파일은 그레이들 혹은 메이븐에서 JAR 빌드를 하면 확인할 수 있다.
빌드 후 Jar파일을 압축 해제 해보면
META-INF에 MANIFEST.MF 파일이 생성된 것을 확인할 수 있는데, 메모장을 열어 확인 시
별 다른 설정을 하지 않았다면 Manifest-Version: 1.0만 확인할 수 있다.
그레이들 사용시에는 다음과 같이 JAR빌드 환경옵션을 주어서 Manifest의 메타데이터를 정해줄 수 있다.
jar {
manifest {
attributes(
'Manifest-Version': '1.0',
'Main-Class': 'org.example.Main',
'Create-By': '17.0.2 (OpenJdk)'
)
}
}
만약 위에 같은 설정 없이 다음과 같은 실행 명령어로 JAR를 실행하게 되면
& 'C:\Program Files\Java\jdk-17.0.2\bin\java.exe' -jar C:\homeStudyWorkSpace\Manifest\build\libs\Manifest-1.0-SNAPSHOT.jar
no main manifest attribute 가 나오는데, 이는 메인 클래스를 지정 안하였을때 나는 오류 메시지이다.
만약 위와같이 올바르게 지정 및 빌드 후 확인하게 되면
올바른 실행결과가 나오게 됨을 알 수 있다.
'JAVA공부 > JAVA' 카테고리의 다른 글
Integer 동일 비교 (4) | 2024.10.07 |
---|---|
Apache Kafka - 부분 내용 정리 ③ (0) | 2024.01.22 |
Apache Kafka - 부분 내용 정리 ② (1) | 2024.01.15 |
Java 8 ~ 17 주요 변경점 정리하기 (0) | 2023.09.17 |
Java 성능 모니터링 ②-① 본론 (VisualVM 분석 및 연동) (0) | 2023.09.13 |