Java 9의 새로운 모듈 패키징 형식, jmod란?
Java 9는 모듈을 캡슐화하기 위해 jmod라는 새로운 파일 형식을 도입했습니다. jmod 파일은 기존 JAR 파일보다 더 다양한 유형의 콘텐츠를 담을 수 있도록 설계되었으며, 네이티브 코드(native code), 설정 파일(configuration files), 네이티브 명령어 등 여러 종류의 데이터를 함께 패키징할 수 있습니다.
다만 jmod 형식은 런타임(runtime) 환경에서는 지원되지 않으며, 현재는 ZIP 형식을 기반으로 구현되어 있습니다. 대신 jmod 형식은 컴파일 시점(compile time)과 링크 시점(link time)에 활용할 수 있고, 관련 파일은 JDK_HOME\jmods 디렉터리에서 찾을 수 있습니다. 여기서 JDK_HOME은 JDK가 설치된 디렉터리를 의미합니다. jmod 형식의 파일은 '.jmod' 확장자를 가집니다.
jmod 명령줄 도구 소개
Java 9에는 jmod라는 새로운 명령줄 도구가 함께 제공되며, 이 도구는 JDK_HOME\bin 디렉터리에 위치합니다. jmod 도구를 활용하면 다음과 같은 작업을 수행할 수 있습니다.
- 새로운 jmod 파일 생성
- jmod 파일의 내용 목록 조회
- 모듈에 대한 설명 출력
- 사용된 모듈의 해시(hash) 값 기록
jmod 명령어 문법
jmod <subcommand> <options> <jmod-file>
jmod 명령은 아래 하위 명령(subcommand) 중 최소 하나 이상을 반드시 포함해야 합니다.
- create : 새로운 jmod 파일 생성
- extract : jmod 파일의 내용 추출
- list : jmod 파일의 내용 목록 출력
- describe : 모듈에 대한 설명 출력
- hash : 모듈의 해시 값 기록
list와 describe 하위 명령은 별도의 옵션을 받지 않습니다. 또한 <jmod-file> 자리에는 새로 생성할 jmod 파일 이름 또는 설명을 확인하려는 기존 jmod 파일 경로를 지정합니다.