사용자 도구

사이트 도구


java:9:module

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:9:module [2023/01/14 16:09]
kwon37xi [기본 명령]
java:9:module [2023/05/01 22:03] (현재)
kwon37xi
줄 1: 줄 1:
 ====== Java 9 Module ====== ====== Java 9 Module ======
 +  * 모듈화(modularization)은 필수는 아니다. 
 +  * [[java:jdeps|jdeps]]
 ===== 기본 명령 ===== ===== 기본 명령 =====
   * ''java %%--%%list-modules'' : 전체 모듈 목록   * ''java %%--%%list-modules'' : 전체 모듈 목록
   * ''java %%--%%describe-module <module-name>'' : 모듈 정보 보기   * ''java %%--%%describe-module <module-name>'' : 모듈 정보 보기
 +  * ''jar -f <module.jar> -d'' : describe ''module.jar'' 
 +  * '' java -p <module-path> %%--module%% <module.name>'' : ''<module.name>'' 모듈에 main 으로 지정된 클래스 실행. 
 +  * ''classpath''에서 실행하면 module 기능이 작동하지 않게 된다.
 ===== exports / requires ===== ===== exports / requires =====
-  * exports : package 를 export 한다. +  * ''exports'' : package 를 export 한다. export 된 패키지는 public 으로 외부접근 가능하며, 그렇지 않은 패키지는 모듈 내부에서만 사용 가능하다. 
-  * requires : 다른 module 을 필요로 한다.+  * ''requires'' : 다른 module 을 필요로 한다. 
 +    * ''java.base'' 모듈은 명시하지 않아도 자동으로 의존한다. 
 + 
 +===== module descriptor ===== 
 +  * ''module-info.java'' 
 + 
 +<code java> 
 +module java.base { 
 +    exports java.io; 
 +    exports java.lang; 
 +    ... 
 +
 +</code> 
 + 
 +===== unnamed module ===== 
 +  * ''classpath'' 상에서 jar를 실행하면 unnamed module 상태가 된다. 
 + 
 +===== automatic module ===== 
 +  * module path 에서 실행되는 jar 는 module descriptor 가 없어도 jar 파일 이름이 자동으로 모듈이름이 된다. 
 +  * 그래야만 module들 끼리 의존성을 지정하거나 할 수 있다. 
 +  * 이 기능이 되어야 class path 기반에서 module path 기반으로 마이그레이션이 가능하다. 
 + 
 +<code sh> 
 +jar -f movie_fe.jar -d 
 + 
 +movie.fe automatic 
 +... 
 +</code> 
 + 
 +===== module 타입별 차이점 ===== 
 +^ 타입 ^ path 방식 ^ ''module-info.java'' ^ requires & exports ^ 
 +| unnamed | classpath | 없음 | requires 전체 모듈, exports 전체 패키지 | 
 +| automatic | modulepath | 없음 | requires 전체 모듈, exports 전체 패키지 | 
 +| explicit | modulepath | 있음 | 명시적으로 requires, exports 지정 | 
 ===== 참조 ===== ===== 참조 =====
   * [[http://in.relation.to/2017/12/12/exploring-jlink-plugin-api-in-java-9/|Exploring the jlink plug-in API in Java 9 - In Relation To]]   * [[http://in.relation.to/2017/12/12/exploring-jlink-plugin-api-in-java-9/|Exploring the jlink plug-in API in Java 9 - In Relation To]]
java/9/module.1673680193.txt.gz · 마지막으로 수정됨: 2023/01/14 16:09 저자 kwon37xi