我们如何在Java 9中修改现有模块?

模块 是一个命名的,自描述的代码和数据集合。该代码已组织为一组软件包,其中包含Java类和接口之类的类型。数据包括资源和其他种类的静态信息。我们需要声明一个模块,然后在源代码的根目录添加module-info.java

以下是“ module-info.java”文件的模板。

module <module-name> {
   requires <module-name1> ;
   requires <module-name2>;

   exports <package-name1>;
   exports <package-name2>;

   exports <package-name> to <module-name>
}

我们可以使用某些命令行选项 来帮助我们修改现有模块并为其添加依赖项,并导出其他软件包。

以下是一些可用于修改现有模块的命令行命令。

1) --add-reads <module>=<target-module>(,<target-module>)*

上面的命令可以将<module>更新为<target-module>,而不管模块的声明如何。可以对<target-module>进行全名 以读取所有无名模块。

2) --add-exports <module>/<package>=<target-module>(,<target-module>)*

上面的命令可以更新<module>以将<package>导出到<target-module>,而不管模块声明如何。<目标模块>可以是ALL-UNNAMED出口到所有无名模块。

3) --add-opens <module>/<package>=<target-module>(,<target-module>)*

上面的命令将<module> 更新为将<package>打开为<target-module>,而不管模块声明如何。

4) --patch-module <module>=<file>(;<file>)*

上面的命令可以用jar文件或目录中的类和资源替换或增加模块。