名前
jaotc - コンパイル済のJavaメソッドのネイティブ・コードを生成するJava静的コンパイラ
シノプシス
jaotc
[options] [name | list]
- options
- スペースで区切ったコマンド行オプション。 「jaotcオプション」を参照してください。
- name
- Javaメソッドのコンパイル元のJavaクラスまたはjarファイル。
- list
- クラス名、モジュール、jarファイルまたはクラス・ファイルが含まれるディレクトリのコロンで区切られた(
:
)リスト。
説明
jaotc
コマンドはJava Ahead-Of-Time (AOT)静的コンパイラで、指定されたJavaクラス・ファイル内のJavaメソッドの共有ライブラリの形式でネイティブ・コードを生成します。 Java Virtual MachineはこれらのAOTライブラリをロードし、その中からネイティブ・コードを使用します(そのコードが該当するJavaメソッドが呼び出された場合)。 jaotc
を使用すると、JITコンパイラがこれらのJavaメソッドの高速ネイティブ・コードを(バイトコードのコンパイルによる)で生成するのを待つ必要はありません。 コードはすでにjaotc
によって生成されており、すぐに使用できる状態になっています。 同様に、高速コンパイルされたネイティブ・コードをかわりに実行できるため、これらのメソッドをインタプリタで実行する必要はありません。
ノート:
jaotc
コマンドは試験的です。 詳細は、「JEP 295: 試行時間コンパイル」を参照してください。
jaotcオプション
--output
file- 出力ファイル名。 デフォルト名は"unnamed.so"です。
--class-name
class-names- コンパイルするJavaクラスのリスト。
--jar
jar-files- コンパイルするJARファイルのリスト。
--module
modules- コンパイルするJavaモジュールのリスト。
--directory
dirs- コンパイルするファイルを検索するディレクトリのリスト。
--search-path
dirs- 指定されたファイルを検索するディレクトリのリスト。
--compile-commands
fileコンパイル・コマンドを含むファイルの名前:
exclude
- 指定したメソッドのコンパイルを除外します。
compileOnly
- 指定されたメソッドのみをコンパイルします。
正規表現を使用して、クラスおよびメソッドを指定します。 次に例を示します。
exclude sun.util.resources..*.TimeZoneNames_.*.getContents\(\)\[\[Ljava/lang/Object; exclude sun.security.ssl.* compileOnly java.lang.String.*
--compile-for-tiered
- 階層化コンパイルのプロファイリング・コードを生成します。 デフォルトでは、プロファイリング・コードは(将来変更される可能性があります)を生成しません。
--compile-with-assertions
- Javaアサーションを使用してコードを生成します。 デフォルトでは、アサーション・コードは生成されません。
--compile-threads
number- 使用するコンパイル・スレッドの数を設定します。 デフォルト値は
min(16, available_cpus)
です。 --ignore-errors
- クラスのロード時にスローされたすべての例外を無視します。 デフォルトでは、クラスのロードで例外がスローされた場合、ツールはコンパイルを終了します。
--exit-on-error
- コンパイル・エラーを終了します。 デフォルトでは、失敗したコンパイルはスキップされ、他のメソッドのコンパイルは続行されます。
--info
- コンパイル・フェーズに関する情報を出力します。
--verbose
- コンパイル・フェーズの詳細を出力します。
--debug
- 包括的な詳細を印刷します。
--help
または-h
または-?
- 標準オプションのサマリーを出力し、ツールを終了します。
--version
- バージョン情報を出力します。
-J
flag- ランタイム・システムに渡すフラグを提供します。 複数のフラグを渡すには、必要なフラグまたはフラグ引数ごとにこのオプションのインスタンスを指定します。
jaotcの例
AOTコンパイルを実行するには、jaotc
ツールを使用します。
jaotc --output libHelloWorld.so HelloWorld.class
アプリケーションの実行中に生成されたAOTライブラリを指定します:
java -XX:+UnlockExperimentalVMOptions -XX:AOTLibrary=./libHelloWorld.so HelloWorld