모듈 패키지의 컨테이너이며 각 모듈에는 모듈 을 포함하는 모듈 설명자가 포함됩니다. 이름 , 모듈 종속성, 그것은 다른 모듈의 이름이 의존하는 모듈에서만 사용할 수 있는 내보내는 패키지의 이름과 의존한다는 것을 의미합니다.
module com.tutorialspoint.app { /** Modules upon which the module com.tutorialspoint.app depends on */ requires com.tutorialspoint.services; /** Packages exposed by this module which can be used by other modules */ exports com.tutorialspoint.app.util; }
Java 9 모듈은 레거시 모드, 단일 모듈 모드 및 다중 모듈 모드의 세 가지 컴파일 모드를 제공합니다.
모듈의 컴파일 모드:
- 기존 모드 :--source에 의해 정의된 컴파일 환경일 때 활성화될 수 있습니다. , --타겟, 및 --릴리스 옵션이 8 이하입니다. . 컴파일러는 자바 8에서와 동일한 방식으로 작동합니다. (또는 그 이전) 기존 옵션을 사용할 수 있는 곳(classpath 등) 모듈 관련 옵션(--module-path ). 이 모드에서 코드는 이름이 지정되지 않은 모듈 런타임 중.
- 단일 모듈 모드 :컴파일 환경이 9일 때 활성화할 수 있습니다. 이상 및 --module-source-path 옵션을 사용하지 않습니다. 이 모드에서 코드는 전통적인 패키지 계층적 디렉토리 트리로 구조화되었습니다. 코드에는 module-info.java가 있습니다. 파일이고 클래스 경로가 아닌 모듈 경로에서 실행됩니다. 이 구조에서 src 디렉토리 바로 아래에 module-info.java 파일을 배치할 수 있습니다. 동일한 디렉토리 트리에 여러 module-info.java 파일을 가질 수 없으므로 단일 이라고 합니다. 모듈 모드 .
- 다중 모듈 모드 :컴파일 환경이 9일 때 활성화할 수 있습니다. 이상 및 --module-source-path 옵션이 사용됩니다. 이 모드에서는 동일한 소스 디렉토리 아래에 여러 모듈을 배치합니다. 컴파일 시간 동안 기본 소스 디렉토리는 --module-source-path로 지정할 수 있습니다. 옵션. 각 개별 모듈의 소스 트리는 기본 소스 디렉토리 아래의 자체 하위 디렉토리에 배치할 수 있습니다.