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則表示主模塊。

完整的過程如下圖所示 -

Java9模塊系統