Skip to content
On this page

模块系统 JPMS(Java 9+)

动机

强封装、可靠配置、可裁剪运行时(jlink)。类路径时代「公共类型皆可见」在大型应用中带来维护与安全成本。

module-info.java

java
module com.example.app {
    requires java.net.http;
    exports com.example.api;
    opens com.example.internal to org.junit;
}
  • requires:依赖其他模块(transitive 传递依赖可读性)。
  • exports:包对依赖模块可见。
  • opens:允许反射打开给指定模块(框架与测试常用)。

迁移

未模块化 JAR 以 自动模块 名(通常由 JAR 名推导)参与解析;迁移路径需处理分裂包、非法访问等问题。工具链与 IDE 对模块路径(--module-path)与类路径混用有明确规则。

技术文库