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模块,所以它是默认模块。

热门文章

优秀文章