Java 9 - 模块系统


Java 9 引入了一种称为模块的新型编程组件。模块是代码和数据的自描述集合,并有一个名称来标识它。

特征

通过 Modules 组件,Java 9 中添加了以下增强功能 -

  • 引入了一个新的可选阶段,即链接时间。该阶段位于编译时和运行时之间。在此阶段,可以组装和优化一组模块,使用 jlink 工具制作自定义运行时映像。

  • javac、jlink 和 java 有附加选项来指定模块路径,进一步定位模块的定义。

  • JAR 格式更新为模块化 JAR,其根目录中包含 module-info.class 文件。

  • 引入了JMOD格式,一种打包格式(类似于JAR),可以包含本机代码和配置文件。

创建模块

按照创建模块的步骤,例如 com.tutorialspoint.greetings。

步骤1

创建文件夹 C:\>JAVA\src。现在创建一个文件夹 com.tutorialspoint.greetings,它与我们正在创建的模块的名称相同。

第2步

使用以下代码在 C:\>JAVA\src\com.tutorialspoint.greetings 文件夹中创建 module-info.java 。

模块信息.java

module com.tutorialspoint.greetings { }

module-info.java 是用于创建模块的文件。在此步骤中,我们创建了一个名为 com.tutorialspoint.greetings 的模块。按照约定,该文件应驻留在名称与模块名称相同的文件夹中。

步骤3

在模块中添加源代码。使用以下代码在 C:\>JAVA\src\com.tutorialspoint.greetings\com\tutorialspoint\greetings 文件夹中创建 Java9Tester.java。

Java9测试器.java

package com.tutorialspoint.greetings;

public class Java9Tester {
   public static void main(String[] args) {
      System.out.println("Hello World!");
   }
}

按照惯例,模块的源代码位于与模块名称相同的目录中。

步骤4

创建文件夹 C:\>JAVA\mods。现在创建一个文件夹 com.tutorialspoint.greetings,它与我们创建的模块的名称相同。现在将模块编译到 mods 目录。

C:/ > JAVA > javac -d mods/com.tutorialspoint.greetings 
   src/com.tutorialspoint.greetings/module-info.java 
   src/com.tutorialspoint.greetings/com/tutorialspoint/greetings/Java9Tester.java

步骤5

让我们运行该模块来查看结果。运行以下命令。

C:/>JAVA>java --module-path mods -m com.tutorialspoint.greetings/com.tutorialspoint.greetings.Java9Tester

这里 module-path 提供了 mods 的模块位置,-m 表示主模块。

输出

它将在控制台上打印以下输出。

Hello World!