模块系统(Module System)
Java 9是一种称为模块的新型编程组件。 模块是代码和数据的自描述集合,并具有用于标识它的名称。
特点 (Features)
使用Modules组件,Java 9中添加了以下增强功能 -
引入了新的可选阶段,链接时间。 此阶段介于编译时和运行时之间。 在此阶段,可以组装和优化一组模块,使用jlink工具制作自定义运行时映像。
javac,jlink和java有其他选项来指定模块路径,这些选项进一步定位了模块的定义。
JAR格式更新为模块化JAR,其根目录中包含module-info.class文件。
引入了JMOD格式,一种打包格式(类似于JAR),可以包含本机代码和配置文件。
创建模块
按照创建模块的步骤说cn.xnip.greetings。
Step 1
创建一个文件夹C:\> JAVA\src。 现在创建一个cn.xnip.greetings文件夹,它与我们正在创建的模块名称相同。
Step 2
使用以下代码在C:\> JAVA\src\cn.xnip.greetings文件夹中创建module-info.java。
module-info.java
module cn.xnip.greetings { }
module-info.java是用于创建模块的文件。 在这一步中,我们创建了一个名为cn.xnip.greetings的模块。 按照惯例,此文件应驻留在名称与模块名称相同的文件夹中。
Step 3
在模块中添加源代码。 使用以下代码在C:\> JAVA\src\cn.xnip.greetings\com\xnip\greetings文件夹中创建Java9Tester.java。
Java9Tester.java
package cn.xnip.greetings;
public class Java9Tester {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
按照惯例,模块的源代码位于同一目录中,即模块的名称。
Step 4
创建一个文件夹C:\> JAVA\mods。 现在创建一个cn.xnip.greetings文件夹,它与我们创建的模块名称相同。 现在将模块编译为mods目录。
C:/ > JAVA > javac -d mods/cn.xnip.greetings
src/cn.xnip.greetings/module-info.java
src/cn.xnip.greetings/com/xnip/greetings/Java9Tester.java
Step 5
让我们运行模块来查看结果。 运行以下命令。
C:/>JAVA>java --module-path mods -m cn.xnip.greetings/cn.xnip.greetings.Java9Tester
这里module-path将模块位置提供为mods,-m表示主模块。
输出 (Output)
它将在控制台上打印以下输出。
Hello World!