JARファイルからのネイティブ実行可能ファイルのビルド

ネイティブ実行可能ファイルは、クラス・ファイルから、JARファイルから、またはモジュールからビルドできます。このガイドでは、ネイティブ実行可能ファイルをJARファイルからビルドする方法を示します。

現在の作業ディレクトリ内のJARファイルからネイティブ実行可能ファイルをビルドするには、次のコマンドを使用します:

native-image [options] -jar jarfile [executable name]
  1. GraalVM JDKがインストール済であることを確認します。最も簡単に始めるには、SDKMAN!を使用します。その他のインストール・オプションについては、「ダウンロード」セクションを参照してください。

  2. アプリケーションを準備します。

    • たとえば、お気に入りのIDEや端末で、"App"という名前の新しいJavaプロジェクトを次の構造で作成します:

        | src
        |   --com/
        |      -- example
        |          -- App.java
      
    • 次のJavaコードをsrc/com/example/App.javaファイルに追加します:

        package com.example;
      
        public class App {
      
            public static void main(String[] args) {
                String str = "Native Image is awesome";
                String reversed = reverseString(str);
                System.out.println("The reversed string is: " + reversed);
            }
      
            public static String reverseString(String str) {
                if (str.isEmpty())
                    return str;
                return reverseString(str.substring(1)) + str.charAt(0);
            }
        }
      

      これは、再帰を使用して文字列を逆にする小さいJavaアプリケーションです。

  3. アプリケーションをコンパイルします:
     javac -d build src/com/example/App.java
    

    これにより、build/com/exampleディレクトリにApp.classファイルが生成されます。

  4. 実行可能なJARファイルを作成します:
     jar --create --file App.jar --main-class com.example.App -C build .
    

    プロジェクト・ルート・ディレクトリにApp.jarという名前の実行可能なJARファイルが生成されます: 内容を表示するには、jar tf App.jarコマンドを実行します。

  5. ネイティブ実行可能ファイルを作成します:
     native-image -jar App.jar
    

    プロジェクト・ルート・ディレクトリにネイティブ実行可能ファイルが生成されます。

  6. ネイティブ実行可能ファイルを実行します:
     ./App
    

native-imageのデフォルトの動作は、javaコマンドと一致しています。これは、javaで通常行うように、-jar-cp-mオプションを渡してネイティブ・イメージでビルドできることを意味します。たとえば、java -jar App.jar someArgumentnative-image -jar App.jarおよび./App someArgumentになります。