Java 9 がモジュールシステム
JPMS を導入した理由を解説します。いわゆる「
classpath パーティー」がなぜ問題か、モジュールがコンテナレベルで可視性の境界をどう導入するか、
module-info.java とは何か、そして
module、
exports、
requires、
opens、
uses/
provides といったディレクティブの使い方を扱います。利点(カプセル化、依存関係の明示、セキュリティ、
jlink)、適用箇所(
java.base、
java.sql を含む)、便利な注意点や移行時の典型的な失敗(
exports の入れ忘れ、
requires の書き漏れ、モジュール名の重複)も議論します。