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 指定主要模組。