Java9 模板系统
1 Java9 模板系统的介绍
Java模块系统是Java 9版本中的一项重大更改。Java添加了此功能,以将Java软件包和代码收集到称为模块的单个单元中。
在Java的早期版本中,没有模块的概念来创建模块化Java应用程序,这就是为什么应用程序大小增加且难以移动的原因。甚至JDK本身的大小也太重,在Java 8中,rt.jar文件的大小约为64MB。
为了应对这种情况,Java 9将JDK重组为模块集,以便我们只能在项目中使用所需的模块。
除了JDK,Java还允许我们创建自己的模块,以便我们可以开发基于模块的应用程序。
模块系统包括以下给出的各种工具和选项。
- 包括Java工具javac,jlink和java的各种选项,我们可以在其中指定定位到模块位置的模块路径。
- 引入了模块化JAR文件。此JAR在其根文件夹中包含module-info.class文件。
- 引入了JMOD格式,它是一种类似于JAR的打包格式,但它可以包含本机代码和配置文件。
- JDK和JRE都经过重构以容纳模块。它提高了性能,安全性和可维护性。
- Java为模块,类和资源的命名定义了新的URI方案。
2 Java9 模板的内容
模块是Java程序或软件的集合。要描述模块,需要Java文件module-info.java。此文件也称为模块描述符,它定义了以下内容
- 模块名称
- 导出什么
- 需要什么
3 Java9 模板的命名
模块的命名,应遵循反向域模式。就像我们为包命名一样,例如com.yiidian。
4 Java9 模板的创建过程
创建Java模块需要执行以下步骤。
- 创建目录结构
- 创建一个模块声明文件
- Java源代码
4.1 创建目录结构
要创建模块,建议遵循给定的目录结构,该目录结构与反向域模式相同,我们确实使用Java创建了包/项目结构。
注意:包含模块源的目录名称应等于模块名称,例如com.yiidian。
4.2 创建一个模块声明文件
在此文件中创建一个文件module-info.java,使用模块标识符声明一个模块,并提供与包含它的目录名称相同的模块名称。在我们的例子中,我们的目录名为com.yiidian。
module com.yiidian{
}
如果模块主体没有任何模块依赖性,则将其保留为空。使用module-info.java名称将此文件保存在src/ com.yiidian中。
4.3 编写Java源代码
现在,创建一个Java文件来编译和执行模块。在我们的示例中,我们有一个Hello.java文件,其中包含以下代码。
/**
* 一点教程网: http://www.yiidian.com
*/
class Hello{
public static void main(String[] args){
System.out.println("Hello from the Java module");
}
}
使用Hello.java名称将此文件保存在src/com.yiidian/com/yiidain/中。
5 Java9 编译Java模块
要编译模块,请使用以下命令。
javac -d mods --module-source-path src/ --module com.yiidian
编译后,它将创建一个包含以下结构的新目录。
现在,我们有了一个可以运行的已编译模块。
6 Java9 运行Java模块
要运行已编译的模块,请使用以下命令。
java --module-path mods/ --module com.yiidian/com.yiidian.Hello
输出结果为:
Hello from the Java module
好了,我们已经成功创建,编译和执行了Java模块。
7 Java9 查看模块描述符
要查看已编译的模块描述符,请使用以下命令。
javap mods/com.yiidian/module-info.class
控制台输出结果为:
Compiled from "module-info.java"
module com.yiidian{
requires java.base;
}
到此为止,我们创建了一个空模块,但是它包含一个java.base模块。为什么?因为所有Java模块都链接到java.base模块,所以它是默认模块。
热门文章
优秀文章