我是靠谱客的博主 俊秀白云,这篇文章主要介绍jdk9 模块简介(非常简)jdk9 模块定义jdk9 模块关键字jdk9 模块打包,现在分享给大家,希望可以做个参考。

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

jdk9 模块定义

JDK9定义了以下几个模块
普通模块(有module-info.java文件)
开放模块(与普通模块类似,只是前面多了一个open关键字,所有类可反射,包含私有方法)
匿名模块(无module-info.java文件,一般是JDK9以前的JAR包),匿名模块在JDK9里面会成为自动模块
自动模块与普通模块的区别,自动模块也就是匿名模块,它实际相当于一个open模块,里面的所有类可以被反射,自动模块调用普通模块需要遵循模块规则。

jdk9 模块关键字

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
一般在源代码根目录下写一个固定的module-info.java文件 module XXXX{} 定义一个普通模块 open module XXX{} 定义一个开放模块 可以反射所有 require module name 写在模块里面,需要依赖某个模块 require static module name 编译必须,运行不需要 export package 导出该包下的所有的public修饰的类,可以反射 export package to module name 导出该包下的所有的public修饰的类给某个模块使用,可以反射 opens package to module name 开放该包下所有的类 uses 在当前模块下加载服务 provides interface name with implemnet name 在当前模块下定义服务名,多个实现类用逗号隔开 ServiceLoader 加载服务,需要在META-INFO/services/目录下,创建以接口全名为名称的配置文件,内容为实现类的全名称,多个实现类换行分隔

jdk9 模块打包

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
编译 -d 设置编译后文件存放路径 javac -d mods -encoding utf-8 src/main/java/com/city/City.java src/main/java/module-info.java javac -d mods -encoding utf-8 -p ../city/mods src/main/java/com/school/School.java src/main/java/module-info.java 运行模块内的主文件 java -p mods;../city/mods -m school/com.school.School 创建jmod包 jmod create school.jmod -p mods 输出jlink jlink --module-path "%JAVA_HOME%"jmods --add-modules school.jmod --output link

转载于:https://my.oschina.net/u/3217171/blog/3033810

最后

以上就是俊秀白云最近收集整理的关于jdk9 模块简介(非常简)jdk9 模块定义jdk9 模块关键字jdk9 模块打包的全部内容,更多相关jdk9内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(103)

评论列表共有 0 条评论

立即
投稿
返回
顶部