コマンドライン・オプション

ネイティブ・イメージを構成するオプションは、次のカテゴリで提供されます:

GraalVMのバージョンによっては、native-imageビルダーのオプションが異なる場合があります。

ネイティブ・イメージ・オプションは、ホスト型オプション、または実行時オプションとして分類されることもあります。

これらのオプションの定義方法および使用方法の詳細は、com.oracle.svm.core.optionパッケージのドキュメントを参照してください。

ビルド・オプション

ビルド・オプションのヘルプについては、native-image --helpを実行します。

追加のビルド・オプション

追加のオプションのヘルプについては、native-image --help-extraを実行します。

有用なオプションのリスト

いくつかあるエキスパート・レベルのオプションは、ユーザーにとって便利さや必要性を感じられるものとなっています。たとえば、native-imageビルダーのグラフをダンプしたり、ビルド・プロセス中に様々な統計を出力したりするオプションがあります。

ビルド出力およびビルド・レポート

ネイティブ・イメージでは、ビルド・プロセス中の様々な統計など、有益なビルド出力が生成されます。このビルド出力はマシンによる読取りが可能なJSONベースの形式で、-H:BuildOutputJSONFileオプションを使用してリクエストし、後からモニタリング・ツールで処理することが可能です。JSONファイルは、build-output-schema-v0.9.3.jsonで定義されたJSONスキーマに対して検証されます。追加情報を含む包括的なレポートは、--emit build-reportオプションを使用してリクエストできます。

ノート: --emit build-reportオプションは、GraalVM Community Editionでは使用できません。

グラフのダンプ

ネイティブ・イメージでは、GraalVMデバッグ環境のグラフのダンプ、ロギング、カウンタおよびその他すべてのオプションが再利用されています。これらのGraalVMオプションは、ホスト型オプション(native-imageビルダーのグラフをダンプする場合)として使用することも、実行時オプション(実行時の動的コンパイル中にグラフをダンプする場合)として使用することも可能です。

想定どおりに動作するGraalコンパイラ・オプションとしては、DumpDumpOnErrorLogMethodFilter、およびダンプ・ハンドラのファイル名とポートを指定するオプションがあります。たとえば:

システム・プロパティ

-D<system.property>=<value>オプション構文を使用して、イメージ構築時にシステム・プロパティを定義できます。native-imageツールのシステム・プロパティを設定しますが、このプロパティは生成された実行可能ファイルに含まれません。ただし、JDKシステム・プロパティは生成された実行可能ファイルに含まれており、実行時に表示されます。

たとえば:

次のシステム・プロパティは、生成された実行可能ファイルに自動的にコピーされます。

名前 説明
file.separator ファイル・セパレータ
file.encoding デフォルト・ロケールの文字エンコーディング
java.version Java Runtime Environmentのバージョン
java.version.date リリースの一般提供(GA)の日付
java.class.version Javaクラスの形式のバージョン番号
java.runtime.version Java Runtime Environmentのバージョン
java.specification.name Java Runtime Environmentの仕様名
java.specification.vendor Java Runtime Environmentの仕様のベンダー
java.specification.version Java仮想マシンの仕様バージョン
java.vm.specification.name Java仮想マシンの仕様名
java.vm.specification.vendor Java仮想マシンの実装のベンダー
java.vm.specification.version Java仮想マシンの仕様バージョン
line.separator 行区切り文字
native.encoding ホスト環境の文字エンコーディングを指定します
org.graalvm.nativeimage.kind イメージが共有ライブラリまたは実行可能ファイルとして構築されるかどうかを指定します
path.separator パス区切り文字
stdout.encoding System.outおよびSystem.errのエンコーディングを指定します
sun.jnu.encoding コマンドラインを介して渡された値の解析時のエンコーディングを指定します