Java 9中的自动模块是什么?


一个自动模块是一个放置在模块路径上的jar文件。有很多预先存在的库可用于我们的应用程序,其中许多库尚未模块化。为了促进迁移,我们可以将任何库的jar文件添加到应用程序的模块路径中,然后使用该jar文件中的包。它可以隐式地成为一个自动模块,并且可以在模块声明的requires指令中指定。jar文件的名称将成为其模块名称,该名称必须是一个有效的Java标识符,可以在“requires”指令中使用。

一个自动模块

  • 隐式导出所有包类型,因此任何可以读取自动模块的模块(包括未命名模块)都可以访问自动模块包中的公共类型
  • 隐式读取(requires)所有其他模块,包括其他自动模块和未命名模块,因此自动模块可以访问系统其他模块公开的所有公共类型。
%JAVA_HOME%\java --module-path ./libs:./libs-legacy --module app/com.app.Main

自动模块的命名

  • 删除扩展名“.jar”。
  • 删除版本号。例如:mylib-1.2.3 -> mylib
  • 非字母数字字符将被句点替换。
  • 重复的句点将被单个句点替换,链的开头和结尾的句点将被删除。

更新于:2020年4月7日

311 次查看

启动您的职业生涯

完成课程后获得认证

开始
广告