◀戻る
Javaモジュールをネイティブ実行ファイルにビルドする
GraalVM Native Imageでは、Java 9で導入されたJava Platform Module Systemがサポートされるため、モジュール化された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アプリケーションをネイティブ実行ファイルにビルドするには、以下の手順に従ってください。このデモでは、Mavenを使用して集められたシンプルなHelloWorld Javaモジュールを使用します。
├── 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モジュールのリソースにアクセスする方法の詳細を確認してください。