Java 9 模組系統

Java 9 新特性 Java 9 新特性

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.zaixian.mymodule {
}

創建模組

接下來我們創建一個 com.zaixian.greetings 的模組。

第一步

創建檔夾 C:\>JAVA\src,然後在該目錄下再創建與模組名相同的檔夾 com.zaixian.greetings。

第二步

在 C:\>JAVA\src\com.zaixian.greetings 目錄下創建 module-info.java 檔,代碼如下:

module com.zaixian.greetings { }

module-info.java 用於創建模組。這一步我們創建了 com.zaixian.greetings 模組。

第三步

在模組中添加源代碼檔,在目錄 C:\>JAVA\src\com.zaixian.greetings\com\zaixian\greetings 中創建檔 Java9Tester.java,代碼如下:

package com.zaixian.greetings;

public class Java9Tester {
   public static void main(String[] args) {
      System.out.println("Hello World!");
   }
}

第四步

創建檔夾 C:\>JAVA\mods,然後在該目錄下創建 com.zaixian.greetings 檔夾,編譯模組到這個目錄下:

C:/>JAVA> javac -d mods/com.zaixian.greetings
   src/com.zaixian.greetings/module-info.java
   src/com.zaixian.greetings/com/zaixian/greetings/Java9Tester.java

第五步

執行模組,查看輸出結果:

C:/>JAVA> java --module-path mods -m com.zaixian.greetings/com.zaixian.greetings.Java9Tester
Hello World!

module-path 指定了模組所在的路徑。

-m 指定主要模組。

Java 9 新特性 Java 9 新特性