◀返回
將 Java 模組建置為原生可執行檔
GraalVM Native Image 支援 Java 平台模組系統,該系統是在 Java 9 中引入的,這意味著您可以將模組化的 Java 應用程式轉換為原生可執行檔。
native-image
工具接受與模組相關的引數,例如 --module
(-m
)、--module-path
(-p
)、--add-opens
、--add-exports
(與 java
啟動器相同)。當使用此類與模組相關的引數時,native-image
工具本身也被視為一個模組。
除了支援 --add-reads
和 --add-modules
之外,所有與模組相關的選項都會在掃描模組路徑之前被考慮。這有助於防止類別載入錯誤,並允許在執行時更好地進行模組自省。
從 Java 模組建置原生可執行檔的命令是
native-image [options] --module <module>[/<mainclass>] [options]
執行範例
按照以下步驟將模組化的 Java 應用程式建置為原生可執行檔。對於此範例,您將使用一個簡單的 HelloWorld Java 模組,該模組是使用 Maven 收集的
├── hello
│ └── Main.java
│ > package hello;
│ >
│ > public class Main {
│ > public static void main(String[] args) {
│ > System.out.println("Hello from Java Module: "
│ > + Main.class.getModule().getName());
│ > }
│ > }
│
└── module-info.java
> module HelloModule {
> exports hello;
> }
先決條件
請確保您已安裝 GraalVM JDK。開始使用的最簡單方法是使用 SDKMAN!。如需其他安裝選項,請瀏覽下載區。
- 下載或複製範例儲存庫,並導覽至 native-hello-module/ 目錄
git clone https://github.com/graalvm/graalvm-demos
cd graalvm-demos/native-hello-module
- 使用 Maven 編譯並封裝專案
mvn package
- 測試在 GraalVM JDK 上執行它
java --module-path target/HelloModule-1.0-SNAPSHOT.jar --module HelloModule
- 現在將此模組建置為原生可執行檔
native-image --module-path target/HelloModule-1.0-SNAPSHOT.jar --module HelloModule
它會在專案根目錄中將模組化的 Java 應用程式建置為名為 hellomodule 的原生可執行檔,您可以執行它
./hellomodule
相關文件
- 深入了解如何在執行時存取 Java 模組的資源。