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