ネイティブ・イメージのホスト型オプションと実行時オプション
ネイティブ・イメージ・ビルド・オプションにリストされているすべてのオプションに加えて、ホスト型オプションと実行時オプションも区別されています。
-
ホスト型オプション: ネイティブ・イメージ・ビルドを構成します。たとえば、イメージに配置される内容とイメージのビルド方法に影響します。これらは、コマンドラインで接頭辞
-H:
を使用して設定します。 -
実行時オプション: イメージのビルド時に、
native-image
ビルダーのコマンドラインで接頭辞-R:
を使用して初期値を取得します。実行時のデフォルトの接頭辞は-XX:
です(ただし、これはアプリケーション固有であり、ネイティブ・イメージでは必須ではありません)。
オプションの定義方法および使用方法に関する開発者向けドキュメントは、com.oracle.svm.core.option
パッケージのドキュメントを参照してください。
有用なオプションのリスト
グラフのダンプ
ネイティブ・イメージでは、GraalVMデバッグ環境におけるグラフのダンプ、ロギング、カウンタおよびその他すべてにGraalVMオプションが再利用されています。これらのGraalVMオプションは、ホスト型オプションとて使用することも(ネイティブ・イメージ・ビルダーのグラフをダンプする場合)、実行時オプションとして使用することもできます(実行時の動的コンパイル時にグラフをダンプする場合)。
想定どおりに動作するGraalコンパイラ・オプションとしては、Dump
、DumpOnError
、Log
、MethodFilter
、およびダンプ・ハンドラのファイル名とポートを指定するオプションがあります。
たとえば:
-
native-image
ビルダーのコンパイラ・グラフをダンプするには、-H:Dump= -H:MethodFilter=ClassName.MethodName
のように指定します。 -
実行時にコンパイル・グラフをダンプするには、実行時に
-XX:Dump= -XX:MethodFilter=ClassName.MethodName
のようにダンプ・フラグを指定します。
ソフトウェア部品表(SBOM)
GraalVM Enterpriseネイティブ・イメージでは、試験段階のオプションを使用することで、ソフトウェア部品表(SBOM)をネイティブ実行可能ファイルに埋め込むことができます。このオプションは、必要なSBOM形式を入力として受け取り、ネイティブ・イメージ検査ツールを使用して、埋め込まれたSBOMを受動的に取得できます。現在、CycloneDX形式がサポートされています。ユーザーは、コンパイル時に--enable-sbom
オプションを使用して、CycloneDX SBOMをネイティブ実行可能ファイルに埋め込むことができます。SBOMは圧縮形式(gzip
)で格納され、エクスポートされたsbom
シンボルはその開始アドレスを参照し、sbom_length
シンボルはそのサイズを参照します。
デバッグ・オプション
これらのオプションを使用すると、生成されたバイナリの追加チェックが有効になり、デバッグに役立ちます:
-H:[+|-]HostedAssertions
を使用すると、native-image
ビルダーでJavaアサート文が有効または無効になります。このフラグは、HotSpot VMの-ea -esa
または-da -dsa
に変換されます。-H:[+|-]RuntimeAssertions
を使用すると、実行時にJavaアサート文が有効または無効になります。-H:TempDirectory=FileSystemPath
を使用すると、ネイティブ・イメージの生成時に一時ファイルのディレクトリが生成されます。このオプションを指定した場合は、ネイティブ・イメージの生成後に検査できるように一時ファイルは削除されません。
メイン・エントリ・ポイントの制御
-H:Kind=[EXECUTABLE | SHARED_LIBRARY]
: メイン・エントリ・ポイントを含む実行可能ファイルを生成するか、@CEntryPoint
でマークされたすべてのエントリ・ポイントを含む共有ライブラリを生成します。-H:Class=ClassName
: デフォルトのエントリ・ポイント・メソッドを含むクラスです。Kind == SHARED_LIBRARY
の場合は無視されます。-H:Projects=Project1,Project2
: アプリケーションを含むプロジェクト(および一時的にそれが依存するすべてのプロジェクト)です。-H:Name=FileName
: 生成される実行可能ファイルの名前です。-H:Path=FileSystemPath
: 生成された実行可能ファイルが配置されるディレクトリです。