Well, Java 9 is available so let’s make modules!
模块化在Java9中是炒鸡炒鸡重要的!今后,模块将是应用程序的基础构建单位。无论是使用动态语言或静态语言编写,模块都是应用程序的一个重要组成部分,且模块遵循单一功能原则。你可以将任意方法称为模块,正如函数式编程也是基于模块一样。好了,总之,你get到这个点之后就记住:以后模块很重要很重要很重要 The important thing is need to be said 3 times!
步骤:
1、下载Java 9并安装
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
下载后,只需点击它即可进行安装(如果您在MacOS上),并确认已安装:
tomerb@tomerb-mac.local:~$ java --version
java 9-ea
Java(TM) SE Runtime Environment (build 9-ea+164)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+164, mixed mode)
tomerb@tomerb-mac.local:~$ cd ~/tmp
tomerb@tomerb-mac.local:~$ mkdir -p ~/tmp/java9-modules
tomerb@tomerb-mac.local:~$ cd ~/tmp/java9-modules
2、创建一个模块java文件
在Java 9中,为了定义模块,需要为java文件设定一个特别的名字,建议为: module-info.java
3、模块文件路径
module-info.java
应该放在哪里呢?按照惯例,应该把它放在和模块名相同的目录下。
如果你的模块名称是
com.me.mymodule
那么你的模块 module-info.java 应该放在:
src/com.me.mymodule
这使您的 module-info.java 文件放在:
src/com.me.mymodule/module-info.java 路径。
得到它了? ==
4、编写一个模块
现在我们知道我们的模块 filename 和我们的模块 filepath,我们来编写一个具有这个命名和文件夹约定的模块:
tomerb@tomerb-mac.local:~/tmp/java9-modules$ mkdir -p src/com.me.mymodule
tomerb@tomerb-mac.local:~/tmp/java9-modules$ vi src/com.me.mymodule/module-info.java
module com.me.mymodule { }
至此,我们就完成了一个模块的编写!
5、向我们的模块添加代码
在这一步中,我们将向我们的模块添加一些代码!在同一目录下创建一个新的java文件来作为我们的模块:
$ mkdir -p src/com.me.mymodule/com/me/mymodule
$ vi src/com.me.mymodule/com/me/mymodule/Main.java
注意我们代码中的目录名称。为什么这样做呢? 我们首先输入我们模块所在的路径,然后我们为源代码创建完整的包名称。在这种情况下, /com/me/mymodule
在 /com.me.mymodule
的上层。只是我们的源文件属于我们的模块,并且模块已经在Java 9惯例的标准模块目录中。
所以,我们就在Main.java编写hello world:
package com.me.mymodule;
public class Main {
public static void main(String[] args) {
System.out.println("Hello World from Module! :)"); // nothing special here, standard java < 9 class.
}
}
6、编译我们的模块
首先制作 mods
目录(我们将进一步传递给: java --module-path
):
$ mkdir -p mods/com.me.mymodule
$ javac -d mods/com.me.mymodule \
src/com.me.mymodule/module-info.java \
src/com.me.mymodule/com/me/mymodule/Main.java
轻动你高贵的手指,让编译器再跑一会儿!
7、运行我们的模块
$ java --module-path mods -m com.me.mymodule/com.me.mymodule.Main
Hello World from Module! :)
总结
在这部分中,我们下载了Java 9,创建了一个模块,向其中添加了一个源文件,并运行它。我们看到在创建源代码时创建模块路径和类似的东西时,需要遵循一个命名约定。
原文:https://dzone.com/articles/java-9-tutorial-step-by-step-from-zero-to-modules