Java 9 모듈 시스템: 향상 사항, 링크 타임, 커스텀 런타임 이미지
Java 9에서는 모듈이라는 새로운 종류의 프로그래밍 구성 요소가 도입되었습니다. 모듈은 자체 기술적인 코드와 데이터의 모음이며, 이를 식별하는 이름을 가집니다.
기능
모듈 구성 요소와 함께 Java 9에 다음 향상 사항이 추가되었습니다.
- 컴파일 타임과 런타임 사이에 새로운 선택적 단계인 링크 타임(link time)이 도입됨. 이 단계에서 모듈 세트를 조립하고 최적화해
jlink 도구로 커스텀 런타임 이미지 생성 가능
javac, jlink, java에 모듈 경로를 지정하는 추가 옵션이 있어 모듈 정의를 더 찾을 수 있음
- JAR 형식이 모듈러 JAR로 업데이트됨. 루트 디렉터리에
module-info.class 파일 포함
JMOD 형식 도입. 네이티브 코드와 설정 파일을 포함할 수 있는 패키징 형식(JAR과 유사)
모듈 생성
com.tutorialspoint.greetings 모듈 생성 단계:
1단계
C:\JAVA\src 폴더 생성. 이제 생성하려는 모듈 이름과 같은 com.tutorialspoint.greetings 폴더 생성.
2단계
C:\JAVA\src\com.tutorialspoint.greetings 폴더에 module-info.java 생성:
module com.tutorialspoint.greetings {
}
module-info.java는 모듈을 생성하는 파일입니다. 이 단계에서 com.tutorialspoint.greetings라는 모듈을 생성했습니다. 관례상 이 파일은 모듈 이름과 같은 폴더에 위치해야 합니다.
3단계
모듈에 소스 코드 추가. C:\JAVA\src\com.tutorialspoint.greetings\com\tutorialspoint\greetings 폴더에 Java9Tester.java 생성:
package com.tutorialspoint.greetings;
public class Java9Tester {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
관례상 모듈의 소스 코드는 모듈 이름과 같은 디렉터리에 위치합니다.
4단계
C:\JAVA\mods 폴더 생성. 모듈 이름과 같은 com.tutorialspoint.greetings 폴더 생성. 이제 모듈을 mods 디렉터리로 컴파일:
C:/JAVA> javac -d mods/com.tutorialspoint.greetings src/com.tutorialspoint.greetings/module-info.java src/com.tutorialspoint.greetings/com/tutorialspoint/greetings/Java9Tester.java
5단계
모듈 실행해 결과 확인. 다음 명령 실행:
C:/JAVA> java --module-path mods -m com.tutorialspoint.greetings/com.tutorialspoint.greetings.Java9Tester
--module-path는 모듈 위치를 mods로 제공하고, -m은 메인 모듈을 의미합니다.
출력
Hello World!