JDK模块化之简单示例

JDK模块化三之简单示例

JDK模块化系列文章
JDK的模块化之Overview
JDK模块化之模块的基础概念
JDK模块化之简单示例
JDK模块化之多模块示例

简单示例单模块HelloWorld-Module

以下示例都采用JDK 17,IDEA 2021.2进行开发。

主要步骤如下:

  1. 新建一个模块
  2. 命名模块
  3. 应用的文件结构
  4. 开发、运行、打包

图解:完全新建模块

新建Empty Project项目
在这里插入图片描述
命名为Simple Module,确定JDK为17,output路径设为mods。
在这里插入图片描述
新建模块com.donny.hello
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

src文件夹下,新建模块描述符 module-info.java。命名模块名称:com.donny.hello和依赖java.base

module com.donny.hello {
    requires java.base;
}

新建包 com.donny.hello,新建类HelloWorldApp,输出Hello World! --From JAVA 17

public class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!   --From JAVA 17");
    }
}

此时整个软件工程目录如下:

在这里插入图片描述
点击”Run“ 运行项目,输出Hello World! --From JAVA 17
在这里插入图片描述

相关命令行

编译

请打开终端窗口并使用 cd 命令切换到此 SimpleModule 文件夹,然后键入:

javac -d .\mods\production\com.donny.hello\ .\com.donny.hello\src\module-info.java .\com.donny.hello\src\com\donny\hello\HelloWorldApp.java

在这里插入图片描述

linux下可以简写:

javac -d mods/production$(find com.donny.hello/src -name "*.java")
打包

使用 jar 命令将展开的模块文件夹打包为模块化 JAR 文件,其中包含所有模块文件,包括位于 JAR 根文件夹中的 module-info.class 文件。 运行应用程序时,需要在模块路径上指定 JAR 文件。

在文件夹下Simple Module新建mlib文件夹。
在这里插入图片描述

jar --create --file mlib/com.donny.hello@0.1.jar --module-version 0.1 --main-class com.donny.hello.HelloWorldApp -C mods/production/com.donny.hello .

相关选项如下:

  • --create 指定命令应该创建一个新的 JAR 文件。
  • --file-f 指定 JAR 文件的名称,后跟名称 - 在这种情况下,将在文件夹中创建文件 eg.com.taman.hello@0.1.jar 命名为“mlib”。
  • --main-class 指定应用程序入口点的完全限定名称 - 一个包含 main 方法的类。
  • -C 指定哪个文件夹包含应该包含在 JAR 文件中的文件,然后是要包含的文件 - 点表示应该包含文件夹中的所有文件。

您可以使用简写符号 -cfe 后跟 JAR 文件名和主类来简化上述命令中的 --create--file--main-class 选项,如下所示:

jar -cfe mlib/com.donny.hello.jar com.donny.hello.HelloWorldApp -C mods/production/com.donny.hello .

在这里插入图片描述

运行

--module-path-p(短划线)是模块路径; 它的值是一个或多个包含模块的目录。 -m 选项指定主模块,正斜杠后面的值是模块中主类的类名。

java --module-path mods/production -m com.donny.hello/com.donny.hello.HelloWorldApp

简写

java -p mods/production -m eg.com.taman.hello/eg.com.taman.hello.HelloWorldApp

在这里插入图片描述

运行jar

清除掉mlib/com.donny.hello@0.1.jar,只保留mlib/com.donny.hello.jar,执行以下命令。

java --module-path mlib -m com.donny.hello

或者

java -p mlib -m com.donny.hello

如果你在创建JAR时没有指定入口点,你仍然可以通过指定模块名和完全限定类名来运行应用程序,如下所示:

java --module-path mlib -m com.donny.hello.HelloWorldApp

或者

java -p mlib -m com.donny.hello.HelloWorldApp
查看模块化的JAR模块声明中的内容

JAR工具有许多新选项(参见jar --help),其中一个选项是打印打包为模块化JAR的模块的模块声明信息。

jar --describe-module --file mlib/com.donny.hello.jar

简写

jar -d -f mlib/com.donny.hello.jar

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顧棟

若对你有帮助,望对作者鼓励一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值