JARファイルからのネイティブ実行可能ファイルのビルド
ネイティブ実行可能ファイルは、クラス・ファイルから、JARファイルから、またはモジュールからビルドできます。このガイドでは、ネイティブ実行可能ファイルをJARファイルからビルドする方法を示します。
現在の作業ディレクトリ内のJARファイルからネイティブ実行可能ファイルをビルドするには、次のコマンドを使用します:
native-image [options] -jar jarfile [executable name]
デモの実行
前提条件
GraalVM JDKがインストール済であることを確認します。最も簡単に始めるには、SDKMAN!を使用します。その他のインストール・オプションについては、「ダウンロード」セクションを参照してください。
-
アプリケーションを準備します。
- たとえば、お気に入りの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アプリケーションです。
- たとえば、お気に入りのIDEや端末で、"App"という名前の新しいJavaプロジェクトを次の構造で作成します:
- アプリケーションをコンパイルします:
javac -d build src/com/example/App.java
これにより、build/com/example/ディレクトリにApp.classファイルが生成されます。
- 実行可能なJARファイルを作成します:
jar --create --file App.jar --main-class com.example.App -C build .
プロジェクト・ルート・ディレクトリにApp.jarという名前の実行可能なJARファイルが生成されます。その内容を表示するには、次のコマンドを実行します:
jar tf App.jar
- ネイティブ実行可能ファイルを作成します:
native-image -jar App.jar
プロジェクト・ルート・ディレクトリにネイティブ実行可能ファイルが生成されます。実行可能ファイルのデフォルト名は、JARファイルの名前になります(この場合は"App")。これをカスタマイズするには、最後の引数としてカスタム名を指定するか(たとえば、
native-image -jar App.jar executable_name
)、-jar jarfile
の前または後に-o executable_name
を使用します(たとえば、native-image -jar App.jar -o executable_name
)。 - ネイティブ実行可能ファイルを実行します:
./App
native-image
のデフォルトの動作は、java
コマンドと一致しています。これは、java
で通常行うように、-jar
、-cp
、-m
オプションを渡してネイティブ・イメージでビルドできることを意味します。たとえば、java -jar App.jar someArgument
はnative-image -jar App.jar
および./App someArgument
になります。