Java 9 Module

Java 9 Module

기존 자바의 문제점

Java 9 에서 발생한 자바 모듈의 변화

예시

모듈 선언

// module-info.java

module sub {
    requires java.base;
    // 이 경우 com.awayday.sub 직할 클래스는 모듈 외부에서 접근 가능하나,
    // com.awayday.sub.util 과 같은, 하위 패키지의 클래스는 모듈 외부에서 접근 불가능.
    exports com.awayday.sub;
}

모듈 사용

// module-info.java

module jdk9module {
    requires sub;
}
// Main.java

package com.awayday.main;

import com.awayday.sub.Service;
// import com.awayday.sub.util.Util;

public class Main {
    public static void main(String[] args) {
        // ERROR : 'sub'(module) doesn't export 'util'(package)
        // Util.printInteger("zero", 0);

        // RUN
        Service.printCalcurateResult(4, 2);
    }
}