Java 9 中模組的不同編譯模式是什麼?


一個模組是包的容器,每個模組包含一個模組描述符,其中包括模組名稱模組依賴項,這意味著其他模組的名稱取決於它以及它匯出的包的名稱,這些包只能被依賴它的模組使用。

module com.tutorialspoint.app {
   /** Modules upon which the module com.tutorialspoint.app depends on */
   requires com.tutorialspoint.services;
   /** Packages exposed by this module which can be used by other modules */
   exports com.tutorialspoint.app.util;
}

Java 9 模組提供了三種不同的編譯模式:傳統模式、單模組模式和多模組模式。

模組的編譯模式


  • 傳統模式:當由--source--target--release選項定義的編譯環境小於或等於8時,可以啟用此模式。編譯器的行為與Java 8(或更早版本)中的行為相同,在其中我們可以使用傳統選項(classpath等),而不是任何與模組相關的選項(--module-path)。在此模式下,我們的程式碼在執行時作為未命名模組執行。
  • 單模組模式:當編譯環境為9或更高版本且未使用--module-source-path選項時,可以啟用此模式。在此模式下,程式碼已構建在傳統的包分層目錄樹中。程式碼具有一個module-info.java檔案,並在模組路徑而不是類路徑上執行。在此結構中,我們可以將我們的module-info.java檔案直接放在src目錄下。我們不能在同一個目錄樹中有多個module-info.java檔案,因此它被稱為單模組模式
  • 多模組模式:當編譯環境為9或更高版本且使用了--module-source-path選項時,可以啟用此模式。在此模式下,我們將多個模組放在同一個源目錄下。在編譯時,可以使用--module-source-path選項指定主源目錄。每個單獨模組的源樹可以放置在主源目錄下的其自己的子目錄中。

更新於: 2020年3月3日

223 次檢視

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.