发新帖

[Java] Java中module-info.java文件的详细解析和说明

零下一度 2023-11-8 1191


module-info.java是Java 9新增的文件,它用来描述一个模块(Module),模块是一个可以被Java虚拟机(JVM)加载的程序包,它可以将程序包分组,以提高程序的安全性和管理性。


module-info.java的结构

module-info.java文件是一个普通的Java源文件,它包含一个模块声明,模块声明是用module关键字定义的,它由模块名称、模块依赖、模块导出、模块开放以及模块服务等部分组成:

module <模块名称> {
    requires <模块依赖>;
    exports <模块导出>;
    opens <模块开放>;
    uses <模块服务>;
    provides <模块提供> with <模块实现>;
}


模块声明

模块声明是一个模块的定义,它由一个module关键字和一个模块名称组成,模块名称是一个标识符,它必须与模块的文件夹名称相同,模块声明可以有0个或多个模块指令:

module <模块名称> {
    <模块指令>;
    ...
}


模块依赖

模块依赖是指当前模块依赖其他模块,它由一个requires关键字和一个模块名称组成,模块依赖可以有0个或多个:

module <模块名称> {
    requires <模块依赖1>;
    requires <模块依赖2>;
    ...
}


模块导出

模块导出是指将当前模块中的某些包导出给其他模块使用,它由一个exports关键字和一个包名称组成,模块导出可以有0个或多个:

module <模块名称> {
    exports <包1>;
    exports <包2>;
    ...
}


模块开放

模块开放是指将当前模块中的某些包开放给其他模块使用,它由一个opens关键字和一个包名称组成,模块开放可以有0个或多个:

module <模块名称> {
    opens <包1>;
    opens <包2>;
    ...
}


模块服务

模块服务是指当前模块中的某些接口可以被其他模块使用,它由一个uses关键字和一个接口名称组成,模块服务可以有0个或多个:

module <模块名称> {
    uses <接口1>;
    uses <接口2>;
    ...
}


模块提供

模块提供是指当前模块中的某些类可以被其他模块使用,它由一个provides关键字和一个类名称组成,模块提供可以有0个或多个:

module <模块名称> {
    provides <类1> with <类实现1>;
    provides <类2> with <类实现2>;
    ...
}


使用方法

在模块中创建一个module-info.java文件,在文件中定义模块的名称、依赖、导出、开放、服务和提供,编译模块,即可将模块加载到JVM中。


@861ppt



最新回复 (0)
返回
零下一度
主题数
940
帖子数
0
注册排名
1