사용자 도구

사이트 도구


java:9:module

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:9:module [2023/01/14 16:25]
kwon37xi [exports / requires]
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 한다. export 된 패키지는 public 으로 외부접근 가능하며, 그렇지 않은 패키지는 모듈 내부에서만 사용 가능하다.   * ''exports'' : package 를 export 한다. export 된 패키지는 public 으로 외부접근 가능하며, 그렇지 않은 패키지는 모듈 내부에서만 사용 가능하다.
줄 20: 줄 23:
 } }
 </code> </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.1673681100.txt.gz · 마지막으로 수정됨: 2023/01/14 16:25 저자 kwon37xi