概述
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.
module java.logging {
exports java.util.logging;
}
使用者在自己的中这样导入A模块
模块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
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 module机制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复