ネイティブ・イメージ・オプション
native-image
ビルダーでは、java
ランチャの使い慣れたオプションを使用して、すべてのクラスのクラスパスを指定する必要があります: -cp
の後に、ディレクトリまたはJARファイルのリストを:
で区切って指定します。メイン・メソッド(main
)を含むクラスの名前が最後の引数となり、そのようにしない場合は、-jar
を使用して、マニフェスト内でメイン・メソッドを指定するJARファイルを指定できます。
native-image
コマンドの構文は次のとおりです:
-
native-image [options] class [imagename] [options]
: 現在の作業ディレクトリにクラスの実行可能ファイルをビルドします。これを呼び出すと、そのクラスのネイティブ・コンパイル・コードが実行されます。 -
native-image [options] -jar jarfile [imagename] [options]
: JARファイルのイメージをビルドします。
native-image
に渡されるオプションは左から右に評価されます。詳細は、「ネイティブ・イメージ・ビルド構成」を参照してください。
オプションは、イメージ生成オプション、マクロ・オプション、非標準オプションおよびサーバー・オプションの4つのカテゴリに分類されます。非標準オプションとサーバー・オプションは、非推奨サイクルを通じて変更される可能性があります。
コマンドライン・ヘルプが用意されています。native-image --help
を実行してコマンドの概要を取得し、native-image --help-extra
を実行して非標準オプション、マクロ・オプションおよびサーバー・オプションに関するヘルプを出力します。
ネイティブ・イメージ・ビルダーのオプション
ネイティブ・イメージ・ビルダー(native-image
)のオプションは、GraalVMのエディションに応じて異なる場合があります。次のオプションは、GraalVM Communty EditionとEnterprise Editionの両方で同様にサポートされています:
-cp, -classpath, --class-path <class search path of directories and zip/jar files>
: クラス・ファイルを検索するディレクトリ、JARアーカイブおよびZIPアーカイブのコロン区切りリストです。-D<name>=<value>
: システム・プロパティを設定します。-J<flag>
: ネイティブ・イメージ・ビルダーを実行するJVMに<flag>
を直接渡します。-O<level>
: 最適化を行わない場合は0、基本的な最適化を行う場合は1 (デフォルト)です。--verbose
: 詳細な出力を有効にします。--version
: 製品バージョンを出力して終了します。--help
: このヘルプ・メッセージを出力します。--help-extra
: 非標準オプションのヘルプを出力します。--allow-incomplete-classpath
: 不完全なクラスパスを使用したイメージ・ビルドを許可します。イメージのビルド時ではなく、実行時の初回アクセス時に型解決エラーを報告します。--auto-fallback
: 可能な場合はスタンドアロン・イメージをビルドします。--enable-http
: 生成されたイメージでHTTPサポートを有効にします。--enable-https
: 生成されたイメージでHTTPSサポートを有効にします。--enable-url-protocols
: 有効にするURLプロトコルをカンマ区切りでリストします。--features
: 完全修飾機能実装クラスのカンマ区切りリストです。--force-fallback
: フォールバック・イメージのビルドを強制します。--initialize-at-build-time
: イメージのビルド時に初期化されるパッケージとクラス(およびそのすべてのスーパークラスを暗黙的に含む)のカンマ区切りリストです。空の文字列はすべてのパッケージを示します。--initialize-at-run-time
: イメージのビルド時ではなく、実行時に初期化される必要があるパッケージとクラス(およびそのすべてのサブクラスを暗黙的に含む)のカンマ区切りリストです。現在、空の文字列はサポートされていません。--install-exit-handlers
: 実行可能イメージのjava.lang.Terminator
終了ハンドラを指定します。--libc
: 使用するlibc
ネイティブ・ライブラリ実装を選択します(使用可能な実装はglibc
およびmusl
です)。--native-compiler-options
: コードのコンパイルの問合せに使用されるカスタムCコンパイラ・オプションを指定します。--native-compiler-path
: コードのコンパイルおよびリンクの問合せに使用されるCコンパイラへのカスタム・パスを指定します。--native-image-info
: ネイティブ・ツールチェーン情報およびイメージのビルド設定を表示します。--no-fallback
: スタンドアロン・イメージをビルドするか、障害を報告します。--report-unsupported-elements-at-runtime
: イメージのビルド時にエラーを報告するのではなく、実行時の初回アクセス時にサポート対象外のメソッドおよびフィールドの使用状況を報告します。--shared
: 共有ライブラリをビルドします。--static
: 静的にリンクされた実行可能ファイルをビルドします(libc
およびzlib
静的ライブラリが必要です)。--target
: (- 形式の)ネイティブ・イメージ・コンパイル・ターゲットを選択します。デフォルトはホストのOSとアーキテクチャのペアです。 --trace-class-initialization
: クラスの初期化がトレースされる完全修飾クラス名のカンマ区切りリストを指定します。--trace-object-instantiation
: オブジェクトのインスタンス化がトレースされる完全修飾クラス名のカンマ区切りリストを指定します。-da
: 生成されたイメージ内で指定粒度のアサーションを無効にします。-da[:[packagename]|:[classname]
または-disableassertions[:[packagename]|:[classname]
バリアントもサポートされています。-dsa
: すべてのシステム・クラス内でアサーションを無効にします。-ea
: 生成されたイメージ内で指定粒度のアサーションを有効にします。-ea[:[packagename]|:[classname]
または-enableassertions[:[packagename]|:[classname]
バリアントもサポートされています。-esa
: すべてのシステム・クラス内でアサーションを有効にします。-
-g
: デバッグ情報を生成します。GraalVM Communityで生成されるデバッグ情報は、GraalVM Enterpriseで生成されるデバッグ情報とは異なることに注意してください。 - GraalVM Enterpriseのみ:
--gc=<value>
: ネイティブ・イメージ・ガベージ・コレクタの実装を選択します。<value>
で使用可能なオプションは、G1ガベージ・コレクタの場合はG1
、シリアル・ガベージ・コレクタの場合はserial
(デフォルト)です。 - GraalVM Enterpriseのみ:
--pgo
: AOTコンパイル済コードのプロファイルに基づく最適化のために収集されたデータを読み取るファイルのカンマ区切りリストです(何も指定しなければdefault.iprofから読み取られます)。 - GraalVM Enterpriseのみ:
--pgo-instrument
: AOTコンパイル済コードを計測して、プロファイルに基づく最適化のためのデータをdefault.iprofファイルに収集します。
マクロ・オプション
--language:nfi
: Truffleネイティブ関数インタフェース言語を使用可能にします--language:python
: Pythonをイメージの言語として使用可能にします--language:R
: Rをイメージの言語として使用可能にします--language:regex
: Truffle正規表現エンジンを使用可能にします--language:wasm
: WebAssemblyをイメージの言語として使用可能にします--language:llvm
: LLVMビットコードをイメージの言語として使用可能にします--language:js
: JavaScriptをイメージの言語として使用可能にします--language:ruby
: Rubyをイメージの言語として使用可能にします--tool:coverage
: GraalVMでサポートされている言語にソース・コード・カバレッジ・サポートを追加します--tool:insight
: プログラムの実行時の動作への詳細なアクセスをサポートし、ユーザーが起動サイトまたは割当てサイトで値と型を検査できるようにします--tool:dap
: VS CodeなどのIDEでDebug Adapter Protocolを提供するデバッガ・ポートをイメージで開けるようにサポートを追加します--tool:chromeinspector
: GraalVMでサポートされている言語にデバッグ・サポートを追加します--tool:lsp
: VS CodeなどのIDEで互換性のあるデバッガを後でGraalVMにアタッチできるように言語サーバー・プロトコル・サポートを追加します--tool:profiler
: GraalVMでサポートされている言語にプロファイリング・サポートを追加します
--language:python
、--language:ruby
および--language:R
ポリグロット・マクロ・オプションは、対応する言語がベースGraalVMインストールに追加されると使用可能になります(「GraalVMアップデータ」ガイドを参照)。
非標準オプション
--expert-options
: エキスパート用のイメージ・ビルド・オプションをリストします--expert-options-all
: エキスパート用のすべてのイメージ・ビルド・オプションをリストします(各自の責任で使用)--expert-options-detail
: カンマ区切りリストとして指定したオプションに関するすべてのヘルプを表示します。*
を渡すと、それを含むすべてのオプションの追加ヘルプが表示されます--configurations-path <search path of option-configuration directories>
: オプション構成ディレクトリとして扱われるディレクトリのカンマ区切りリストです--debug-attach[=< port >]
: イメージのビルド時にデバッガにアタッチします(デフォルト・ポートは8000です)--dry-run
: ビルドに使用されるコマンドラインを出力します-V<key>=<value>
: native-image.propertiesファイルのプレースホルダの値を指定します--help-experimental-build-server
: イメージ・ビルド・サーバー固有のオプションのヘルプを表示します
ネイティブ・イメージ・オプションも、ホスト型オプションおよび実行時オプションとして区別されます。続けて「ネイティブ・イメージのホスト型オプションと実行時オプション」ガイドを参照してください。