天天看點

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

建立子產品

接下來我們建立一個 com.runoob.greetings 的子產品。

第一步

建立檔案夾 C:\>JAVA\src,然後在該目錄下再建立與子產品名相同的檔案夾 com.runoob.greetings。

第二步

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

module com.runoob.greetings { }      

module-info.java 用于建立子產品。這一步我們建立了 com.runoob.greetings 子產品。

第三步

在子產品中添加源代碼檔案,在目錄 C:\>JAVA\src\com.runoob.greetings\com\runoob\greetings 中建立檔案 Java9Tester.java,代碼如下:

package com.runoob.greetings;

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

第四步

建立檔案夾 C:\>JAVA\mods,然後在該目錄下建立 com.runoob.greetings 檔案夾,編譯子產品到這個目錄下:

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

第五步

執行子產品,檢視輸出結果:

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

module-path 指定了子產品所在的路徑。

-m 指定主要子產品。

Java 9 新特性