java 9 jigsaw_聊聊Java9的Jigsaw特性

HotSpot JAVA9发布以来,新发布的特性中,Jigsaw比较受人关注。今天就用一个例子,概要的看看这个新发布的特性(例子参考Open JDK9的示例)。当然对内容了解不深,只是泛泛而谈。

创建两个目录src/com.greetings和src/org.astro,一个表示requires,另一个表示exports。

创建文件目录:

math?formula=mkdir%20-p%20src%2Forg.astro%2Forg%2Fastro mkdir -p src/com.greetings/com/greetings

创建文件:

math?formula=touch%20src%2Forg.astro%2Fmodule-info.java cat src/org.astro/module-info.java

module org.astro {

exports org.astro;

}

math?formula=touch%20src%2Forg.astro%2Forg%2Fastro%2FWorld.java cat src/org.astro/org/astro/World.java

package org.astro;

public class World {

public static String name() {

return "world";

}

}

math?formula=touch%20src%2Fcom.greetings%2Fmodule-info.java cat src/com.greetings/module-info.java

module com.greetings {

requires org.astro;

}

math?formula=touch%20src%2Fcom.greetings%2Fcom%2Fgreetings%2FMain.java cat src/com.greetings/com/greetings/Main.java

package com.greetings;

import org.astro.World;

public class Main {

public static void main(String[] args) {

System.out.format("Greetings %s!%n", World.name());

}

}

创建编译class文件存放文件夹:

$ mkdir -p mods/org.astro mods/com.greetings

执行编译命令

$ javac -d mods/org.astro src/org.astro/module-info.java src/org.astro/org/astro/World.java

javac -d表示“指定放置生成的类文件的位置”。

$ javac --module-path mods -d mods/com.greetings src/com.greetings/module-info.java src/com.greetings/com/greetings/Main.java

编译成功,查看mods文件夹,分别对应两个编译完成的结果。

此时执行命令:

$ java --module-path mods -m com.greetings/com.greetings.Main

Greetings world!

到现在为止,com.greetings依赖org.astro的发布例子就如上所示。

对编译结果可以使用jar命令打包。

创建mlib文件夹:

$ mkdir mlib

打包命令如下:

math?formula=jar%20--create%20--file%3Dmlib%2Forg.astro%401.0.jar%20--module-version%3D1.0%20-C%20mods%2Forg.astro%20. jar --create --file=mlib/com.greetings.jar --main-class=com.greetings.Main -C mods/com.greetings .

一定注意,最后还有一个“.”符号,千万不要漏了。不然会提示错误。

几个参数说明:

--create 表示创建

-C 表示指定读取目录

下面可以直接使用命令执行:

$ java -p mlib -m com.greetings

Greetings world!

至此,基于Jissaw特性的模块发布和引用基本功能就这样。当然还有一些更加复杂的参数和其他命令,比如jlink等等,以后学习到了,再发布上来一起讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值