我是靠谱客的博主 危机外套,这篇文章主要介绍jdk9 module机制,现在分享给大家,希望可以做个参考。

jdk9之后,引入了module机制。

解决的问题是:A模块只想对外提供api这个包下的所有java接口文件,其它包比如apiImpl这个包,禁止其它模块引用。

实验:ubuntu18.10,jdk11.0.2,eclipse201812(4.10.0)

创建工程A和工程B,创建时,eclipse提示是否要创建module-info.java文件。

这个文件一般放在src下,参见jdk自身的模块,比如java.logging.

复制代码
1
2
3
module java.logging {   exports java.util.logging; }

使用者在自己的中这样导入A模块

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
模块A的moudule-info.java module Api { exports mypackage; // mypackage是package名 } 模块B的moudule-info.java module app { requires Api;//这个Api是模块名 } java中 import mypackage.Api; //mypackage是package名, Api是类名

经过测试,B确实只能访问A模块对外暴漏的包

2023-3-19

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
module-info.java module gf_info { requires java.sql; } Test1.java package gaofeng; /** * ~/eclipse-workspace/test1/target$ java -p classes -m gf_info/gaofeng.Test1 * java --module-path /home/gaofeng/eclipse-workspace/test1/target/classes -m gf_info/gaofeng.Test1 * */ // public class Test1 { public static void main(String[] args) { System.out.println(Test1.class.getResource("/config.json")); System.out.println(new java.sql.Timestamp(0) ); } }

最后

以上就是危机外套最近收集整理的关于jdk9 module机制的全部内容,更多相关jdk9内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部