Java 模块类型对比及应用迁移策略
1. 模块类型概述
在 Java 中,模块主要分为三种类型:命名模块(Named Modules)、自动模块(Automatic Modules)和未命名模块(Unnamed Modules)。以下是对这三种模块类型的详细介绍。
2. 命名模块(Named Modules)
命名模块包含一个 module-info.java 文件,该文件位于 JAR 文件的根目录下,与一个或多个包并存。除非另有说明,一个模块通常就是命名模块。命名模块会出现在模块路径(module path)上,而非类路径(classpath)。若包含 module-info.java 文件的 JAR 文件位于类路径上,则它不会被视为命名模块。
可以这样记忆:命名模块的名称在 module-info.java 文件中定义,并且位于模块路径上。
3. 自动模块(Automatic Modules)
自动模块位于模块路径上,但不包含 module-info.java 文件。它只是一个普通的 JAR 文件,当被放置在模块路径上时,会被当作模块处理。
Java 会自动为自动模块确定模块名称。如果 JAR 文件的 META-INF/MANIFEST.MF 文件中指定了 Automatic-Module-Name 属性,Java 会使用该名称;否则,Java 会根据 JAR 文件的文件名来确定模块名称,具体规则如下:
超级会员免费看
订阅专栏 解锁全文
170万+

被折叠的 条评论
为什么被折叠?



