티스토리 뷰

JAVA공부/JAVA

MANIFEST.MF

CodingDreamTree 2024. 2. 5. 02:01

Java Archive(JAR)은 메니페스트 파일로 설명할 수 있는데,  JAR파일 형식 Java클래스 파일과

리소스 및 메타데이터를 단일 파일로 패키지하는 데 사용되는 압축 파일 형식이다.

 

매니페스트 파일은 JAR파일 자체에 대한 메타 데이터를 제공하는데 사용된다.

 

매니페스트 파일은 다음과 같은 정보가 포함되어있다.

 

1. Main-class: JAR 파일 실행시 애플리케이션 진입 메인 클래스 지정

2.Class-Path: JAR파일에 대한 클래스 경로 종속성 지정 (애플리케이션에 필요한 클래스가 포함된

다른 JAR혹은 디렉토리를 포함할 수 있음)

3. Manifest-Version: 매니페스트 파일 형식의 버전 

4. 작성자: JAR 파일을 생성하는데 사용된 도구, 버전, 작성자 , 시스템 식별

 

해당 파일은 그레이들 혹은 메이븐에서 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 가 나오는데, 이는 메인 클래스를 지정 안하였을때 나는 오류 메시지이다.

 

만약 위와같이 올바르게 지정 및 빌드 후 확인하게 되면

 

Main Class 지정 후 실행결과

 

올바른 실행결과가 나오게 됨을 알 수 있다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함