一个模块是包的容器,每个模块都包含一个包含模块名称、模块依赖项的模块描述符,这意味着其他模块的名称取决于它,并且它导出的包的名称只能被依赖于它的模块使用。
<strong>module com.tutorialspoint.app {
/** Modules upon which the module com.tutorialspoint.app depends on */
requires com.tutorialspoint.services;
/** Packages exposed by this module which can be used by other modules */
exports com.tutorialspoint.app.util;
}</strong>
登录后复制
Java 9模块提供了三种不同的编译模式:传统模式、单模块模式和多模块模式。
模块的编译模式:
-
传统模式:当编译环境由--source、--target和--release选项定义的版本小于或等于8时,可以启用该模式。编译器的行为与Java 8(或之前)相同,我们可以使用传统选项(如classpath等)而不是任何模块相关的选项(如--module-path)。在此模式下,我们的代码在运行时作为未命名模块运行。
-
单模块模式:当编译环境为9或更高版本且未使用--module-source-path选项时,可以启用该模式。在此模式下,代码以传统的包层次目录树结构组织。代码具有module-info.java文件,并在模块路径上运行,而不是在类路径上运行。在这种结构中,我们可以直接将module-info.java文件放在src目录下。在同一目录树中不能有多个module-info.java文件,因此称为单模块模式。
-
多模块模式:当编译环境为9或更高版本且使用了--module-source-path选项时,可以启用该模式。在此模式下,我们将多个模块放在同一源目录下。在编译时,可以使用--module-source-path选项指定主源目录。每个单独模块的源树可以放在主源目录的子目录中。
以上是Java 9中模块的不同编译模式是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!