Java 9 最大的變化之一是引入了模塊系統(tǒng)(Jigsaw 項(xiàng)目)。
模塊就是代碼和數(shù)據(jù)的封裝體。模塊的代碼被組織成多個(gè)包,每個(gè)包中包含Java類和接口;模塊的數(shù)據(jù)則包括資源文件和其他靜態(tài)信息。
Java 9 模塊的重要特征是在其工件(artifact)的根目錄中包含了一個(gè)描述模塊的 module-info.class 文 件。 工件的格式可以是傳統(tǒng)的 JAR 文件或是 Java 9 新增的 JMOD 文件。這個(gè)文件由根目錄中的源代碼文件 module-info.java 編譯而來(lái)。該模塊聲明文件可以描述模塊的不同特征。
在 module-info.java 文件中,我們可以用新的關(guān)鍵詞module來(lái)聲明一個(gè)模塊,如下所示。下面給出了一個(gè)模塊com.mycompany.mymodule的最基本的模塊聲明。
module com.bjpowernode.mymodule {
}
創(chuàng)建模塊
接下來(lái)我們創(chuàng)建一個(gè) com.bjpowernode.greetings 的模塊。
第一步:創(chuàng)建文件夾 C:\>JAVA\src,然后在該目錄下再創(chuàng)建與模塊名相同的文件夾 com.bjpowernode.greetings。
第二步:在 C:\>JAVA\src\com.bjpowernode.greetings 目錄下創(chuàng)建 module-info.java 文件,代碼如下:
module com.bjpowernode.greetings { }
module-info.java 用于創(chuàng)建模塊。這一步我們創(chuàng)建了 com.bjpowernode.greetings 模塊。
第三步:在模塊中添加源代碼文件,在目錄 C:\>JAVA\src\com.bjpowernode.greetings\com\bjpowernode\greetings 中創(chuàng)建文件 Java9Tester.java,代碼如下:
package com.bjpowernode.greetings;
public class Java9Tester {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
第四步:創(chuàng)建文件夾 C:\>JAVA\mods,然后在該目錄下創(chuàng)建 com.bjpowernode.greetings 文件夾,編譯模塊到這個(gè)目錄下:
C:/>JAVA> javac -d mods/com.bjpowernode.greetings
src/com.bjpowernode.greetings/module-info.java
src/com.bjpowernode.greetings/com/bjpowernode/greetings/Java9Tester.java
第五步:執(zhí)行模塊,查看輸出結(jié)果:
C:/>JAVA> java --module-path mods -m com.bjpowernode.greetings/com.bjpowernode.greetings.Java9Tester
Hello World!
module-path 指定了模塊所在的路徑。
-m 指定主要模塊。