jaotc命令
名稱
jaotc-Java靜態編譯器,爲已編譯的Java方法生成本機代碼
概要
jaotc
[ 選項 ] [ 名稱 | 清單 ]
-
選項
命令行選項用空格分隔。請參閱jaotc選項。
-
名稱
從中編譯Java方法的Java類或jar文件。
-
清單
用冒號(
:
)分隔的類名稱,模塊,JAR文件或包含類文件的目錄的列表。
描述
該jaotc
命令是Java提前(AOT)靜態編譯器,它以共享庫的形式爲指定Java類文件中的Java方法生成本機代碼。當調用相應的Java方法時,Java虛擬機可以加載這些AOT庫並使用它們中的本機代碼。通過使用jaotc
,無需等待JIT編譯器生成(通過編譯字節碼)這些Java方法的快速本機代碼。該代碼已由生成,jaotc
可以立即使用。出於相同的原因,由於可以執行快速編譯的本機代碼,因此無需在解釋器中執行這些方法。
注意:
該jaotc
命令是實驗性的。有關完整的詳細信息,請參見JEP 295:提前編譯。
jaotc選項
-
--output
文件輸出文件名。默認名稱是“ unnamed.so”。
-
--class-name
類名要編譯的Java類的列表。
-
--jar
jar文件要編譯的JAR文件列表。
-
--module
模組要編譯的Java模塊列表。
-
--directory
rs目錄列表,以搜索要編譯的文件。
-
--search-path
rs搜索指定文件的目錄列表。
-
--compile-commands
文件包含編譯命令的文件的名稱:
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
數設置使用的編譯線程數。默認值爲
min(16, available_cpus)
。 -
--ignore-errors
忽略在類加載期間引發的所有異常。默認情況下,如果類加載引發異常,該工具將退出編譯。
-
--exit-on-error
編譯錯誤退出。默認情況下,將跳過失敗的編譯,並繼續其他方法的編譯。
-
--info
打印有關編譯階段的信息。
-
--verbose
打印有關編譯階段的更多詳細信息。
-
--debug
打印全面的詳細信息。
-
--help
或-h
或-?
打印標準選項的摘要並退出該工具。
-
--version
打印版本信息。
-
-J
旗提供一個標誌以傳遞給運行時系統。要傳遞多個標誌,請爲每個需要的標誌或標誌參數提供此選項的實例。
jaotc示例
使用該jaotc
工具執行AOT編譯。
jaotc --output libHelloWorld.so HelloWorld.class
在應用程序執行期間指定生成的AOT庫:
java -XX:+UnlockExperimentalVMOptions -XX:AOTLibrary=./libHelloWorld.so HelloWorld