ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MANIFEST.MF
    JAVA공부/JAVA 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 지정 후 실행결과

     

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

Designed by Tistory.