jaotcコマンド

機械翻訳について

名前

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
バージョン情報を出力します。
-Jflag
ランタイム・システムに渡すフラグを提供します。 複数のフラグを渡すには、必要なフラグまたはフラグ引数ごとにこのオプションのインスタンスを指定します。

jaotcの例

AOTコンパイルを実行するには、jaotcツールを使用します。

jaotc --output libHelloWorld.so HelloWorld.class

アプリケーションの実行中に生成されたAOTライブラリを指定します:

java -XX:+UnlockExperimentalVMOptions -XX:AOTLibrary=./libHelloWorld.so HelloWorld