Java9模块系统
精华
小牛编辑
118浏览
2023-03-14
Java 9是一种称为模块的新型编程组件。模块是一个自我描述的代码和数据集合,并有一个名称来标识它。
模块系统特征
使用模块组件,Java 9中增加了以下增强功能 -
- 引入了一个新的可选阶段,即链接时间。这个阶段介于编译时间和运行时间之间。 在此阶段,可以组合和优化一组模块,使用jlink工具制作自定义运行时映像。
- javac,jlink和java有额外的选项来指定模块路径,它们进一步定位模块的定义。
- JAR格式更新为模块化JAR,其中包含根目录中的
module-info.class
文件。 - 引入了JMOD格式,这是一种打包格式(类似于JAR),可以包含本机代码和配置文件。
创建模块
按照下面步骤来创建一个模块:com.yiibai.greetings
。
第1步
创建一个文件夹F:\worksp\java9\src
。 在这个目录下,创建一个与创建的模块名称相同的文件夹com.yiibai.greetings
。
第2步
使用以下代码在F:\worksp\java9\src\com.yiibai.greetings
文件夹中创建一个文件:module-info.java,添加以下内容 -
module com.yiibai.greetings { }
module-info.java
是用来创建模块的文件。 在这一步中,我们创建了一个名为com.yiibai.greetings
的模块。 按照惯例,这个文件应该存储在名称与模块名称相同的文件夹中。
第3步
在模块中添加源代码。在F:\worksp\java9\src\com.yiibai.greetings\com\yiibai\greetings
文件夹中创建一个Java文件:Java9Tester.java,其代码如下 -
package com.yiibai.greetings;
public class Java9Tester {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
按照惯例,模块的源代码位于与模块名称相同的目录中。
第4步
创建一个文件夹F:\worksp\java9\mods。 现在创建一个与创建的模块名称相同的文件夹F:\worksp\java9\mods\com.yiibai.greetings
。 现在编译模块到mods
目录。如下所示 -
F:\worksp\java9> javac -d mods/com.yiibai.greetings src/com.yiibai.greetings/module-info.java src/com.yiibai.greetings/com/yiibai/greetings/JavaTester.java
第5步
运行模块来查看结果,执行以下命令。
F:\worksp\java9>java --module-path mods -m com.yiibai.greetings/com.yiibai.greetings.JavaTester
Hello World!
这里module-path
将mods
作为模块位置提供,而-m
则表示主模块。
完整的过程如下图所示 -