本文概述
- Java 9模块化JDK
- Java 9模块
- 模块名称
- 如何创建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方案。
文章图片
Java 9模块 模块是Java程序或软件的集合。要描述模块, 需要Java文件module-info.java。此文件也称为模块描述符, 它定义了以下内容
- 模块名称
- 它出口什么
- 需要什么
文章图片
模块名称 它是模块的名称, 应遵循反向域模式。就像我们为包裹命名一样, 例如com.srcmini。
如何创建Java模块 创建Java模块需要执行以下步骤。
- 创建目录结构
- 创建一个模块声明器
- Java源代码
要创建模块, 建议遵循给定的目录结构, 该目录结构与反向域模式相同, 我们确实使用Java创建了包/项目结构。
注意:包含模块来源的目录名称应与模块名称相同, 例如com.srcmini。
文章图片
在该文件内创建一个文件module-info.java, 使用模块标识符声明一个模块, 并提供与包含它的目录名称相同的模块名称。在我们的例子中, 我们的目录名称是com.srcmini。
module com.srcmini{}
如果模块主体没有任何模块依赖性, 则将其保留为空。使用module-info.java名称将此文件保存在src / com.srcmini中。
Java源代码
现在, 创建一个Java文件来编译和执行模块。在我们的示例中, 我们有一个Hello.java文件, 其中包含以下代码。
class Hello{
public static void main(String[] args){
System.out.println("Hello from the Java module");
}
}
使用Hello.java名称将此文件保存在src / com.srcmini / com / srcmini /中。
编译Java模块
要编译模块, 请使用以下命令。
javac -d mods --module-source-path src/ --module com.srcmini
编译后, 它将创建一个包含以下结构的新目录。
文章图片
现在, 我们有了一个可以运行的已编译模块。
运行模块
要运行已编译的模块, 请使用以下命令。
java --module-path mods/ --module com.srcmini/com.srcmini.Hello
输出:
Hello from the Java module
好了, 我们已经成功创建, 编译和执行了Java模块。
查看已编译的模块描述符
要查看已编译的模块描述符, 请使用以下命令。
javap mods/com.srcmini/module-info.class
此命令将向控制台显示以下代码。
Compiled from "module-info.java"
module com.srcmini {
requires java.base;
}
【Java 9模块系统】瞧, 我们创建了一个空模块, 但是它包含一个java.base模块。为什么?因为所有Java模块都链接到java.base模块, 所以它是默认模块。
推荐阅读
- Java 9 @SafeVarargs注解
- Java 9 Process API改进
- Java 9新版本字符串方案
- Java 9新功能
- Java 9控制面板
- Java 9工厂方法
- Linux|在 Linux 上部署javaWeb项目+图文详解
- 操作系统|java web项目在linux部署、启动,查看系统配置常用的linux命令总结
- spring|《java版Spring Cloud分布式微服务电商》- 项目简介