Java9模組系統


Java 9是一種稱為模組的新型程式設計元件。模組是一個自我描述的程式碼和資料集合,並有一個名稱來標識它。

模組系統特徵

使用模組元件,Java 9中增加了以下增強功能 -

  • 引入了一個新的可選階段,即連結時間。這個階段介於編譯時間和執行時間之間。 在此階段,可以組合和優化一組模組,使用jlink工具製作自定義執行時映像。
  • javac,jlink和java有額外的選項來指定模組路徑,它們進一步定位模組的定義。
  • JAR格式更新為模組化JAR,其中包含根目錄中的module-info.class檔案。
  • 引入了JMOD格式,這是一種打包格式(類似於JAR),可以包含本機程式碼和組態檔案。

建立模組

按照下面步驟來建立一個模組:com.yiibai.greetings

第1步
建立一個檔案夾F:\worksp\java9\src。 在這個目錄下,建立一個與建立的模組名稱相同的檔案夾com.yiibai.greetings

第2步
使用以下程式碼在F:\worksp\java9\src\com.yiibai.greetings檔案夾中建立一個檔案:module-info.java,新增以下內容 -

module com.yiibai.greetings { }

module-info.java是用來建立模組的檔案。 在這一步中,我們建立了一個名為com.yiibai.greetings的模組。 按照慣例,這個檔案應該儲存在名稱與模組名稱相同的檔案夾中。

第3步

在模組中新增原始碼。在F:\worksp\java9\src\com.yiibai.greetings\com\yiibai\greetings檔案夾中建立一個Java檔案:Java9Tester.java,其程式碼如下 -

package com.yiibai.greetings;

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

按照慣例,模組的原始碼位於與模組名稱相同的目錄中。

第4步
建立一個檔案夾F:\worksp\java9\mods。 現在建立一個與建立的模組名稱相同的檔案夾F:\worksp\java9\mods\com.yiibai.greetings。 現在編譯模組到mods目錄。如下所示 -

F:\worksp\java9> javac -d mods/com.yiibai.greetings src/com.yiibai.greetings/module-info.java src/com.yiibai.greetings/com/yiibai/greetings/JavaTester.java

第5步
執行模組來檢視結果,執行以下命令。

F:\worksp\java9>java --module-path mods -m com.yiibai.greetings/com.yiibai.greetings.JavaTester
Hello World!

這裡module-pathmods作為模組位置提供,而-m則表示主模組。

完整的過程如下圖所示 -