j2objc
j2objc 工具會將指定的 Java 來源檔案轉換成 Objective-C 或 Objective-C++ 來源,供 iOS 應用程式使用。
j2objc [ options ] file1.java ...
以下是支援的選項。如果是採用路徑的選項,多個目錄和 jar 檔案會以「:」分隔,例如使用 java
和 javac
指令完成。
常見選項
- -sourcepath <路徑>
- 指定輸入來源檔案的位置。
- -classpath <路徑>
- 指定尋找使用者類別檔案的位置。
- -d <目錄>
- 指定產生的 Objective-C 檔案的位置。
- -encoding <編碼>
- 指定來源檔案的字元編碼 (預設為 UTF-8)。
- -source <版本>
- 提供與指定版本的來源相容性。
- -g
- 產生偵錯支援。
- -l, --list
- 列出已翻譯的檔案。
- -v, --verbose
- 輸出譯者執行的動作。
- -Werror
- 將所有警告轉換成錯誤。
- -h, --help
- 列印這封郵件。
翻譯選項
- --add-reads
- 選項直接轉送至 Java 編譯器 (詳情請參閱 javac 說明)。
- --allow-inherited-constructors
- 當原生程式碼存取沿用的建構函式時,不要發出編譯器警告。
- --build-closure
- 翻譯相依類別不是最新版本 (例如:
javac
)。 - --class-properties
- 產生靜態變數和列舉常數的類別屬性。
- --dead-code-report <檔案>
- 指定刪除無效程式碼的 ProGuard 使用情況報表。
- --doc-comments
- 將 Javadoc 註解轉換成與 Xcode 相容的註解。
- --doc-comments-warnings
- 在翻譯 Javadoc 註解時回報警告。
- -external-annotation-file <檔案>
- 指定影響 Java 註解索引檔 (由 Checker Framework 定義的格式) 的最常見註解。
- -g:none
- 請勿產生偵錯支援。
- -g:relative
- 使用相對路徑產生偵錯支援。
- --generate-deprecated
- 針對已淘汰的方法、類別和介面產生已淘汰的屬性。
- -J<旗標>
- 將 Java <flag> (例如
-Xmx1G
) 傳送至系統執行階段。 - --mapping <檔案>
- 新增方法對應檔案。
- --no-class-properties
- 請勿為靜態變數和列舉常數產生類別屬性。
- --no-extract-unsequenced
- 請勿重新編寫會產生未修改修改錯誤的運算式。
- --no-nullability
- 請勿產生 Objective-C 是否可為空值註解。
- --no-package-directories
- 產生檔案時,請勿為 Java 套件建立目錄。
- --no-segmented-headers
- 產生每個宣告類型中含防護符號的標頭。適合用於破壞匯入週期。
- --no-wrapper-methods
- 請勿為建構函式和靜態方法產生 Objective-C 包裝函式方法。(J2ObjC 會針對這些執行檔產生 C 函式)
- --nullability
- 將可為空值和非空值註解轉換為 Objective-C 註解。
- --patch-module
- 選項直接轉送至 Java 編譯器 (詳情請參閱 javac 說明)。
- --prefix <package=prefix>
- 將指定前置字串替換為套件名稱。
- --prefixes <檔案>
- 使用前置字串定義屬性檔案。
- --preserve-full-paths
- 產生與輸入檔案具有相同路徑的輸出檔案。
- -processor <class1>[,<class2>...]
- 要執行的註解處理工具名稱;略過預設的探索程序。
- -processorpath <路徑>
- 指定註解處理工具的位置。
- --reflection:{all,none,enum-constants,-enum-constants,name-mapping,-name-mapping}
- 產生或排除 Java 反映所需的特定支援。
- --reserved-names <檔案>
- 避免重新定義系統標頭中顯示的 ID。
- --static-accessor-methods
- 產生靜態變數和列舉常數的存取子方法。
- --strip-gwt-incompatible
- 移除標有
GwtIncompatible
註解的方法,除非已知其值相容。 - --strip-reflection
- 請勿產生 Java 反射所需的中繼資料 (注意:這樣做可以大幅減少反射支援)。
- --swift-friendly
- 產生可促進 Swift 匯入的程式碼 (相當於 --class-properties --nullability)。
- --system
- 選項直接轉送至 Java 編譯器 (詳情請參閱 javac 說明)。
- -t, --timing-info
- 列印步驟的列印時間。
- --timing-info:{all,total,none}
- 列印步驟的列印時間。
- -use-arc
- 產生 Objective-C 程式碼,以支援自動參照計數 (ARC)。
- -use-reference-counting
- 產生 Objective-C 程式碼以支援 iOS 手動參照計數 (預設)。
- -version
- 版本資訊。
- -x <語言>
- 指定要輸出的語言。可能的值包括 objective-c (預設值) 和 objective-c++。
- -X
- 列印非標準選項的說明。
非標準選項
- -Xbootclasspath:<路徑>
- 翻譯使用的啟動路徑 (而非工具本身)。
- -Xlint
- 啟用所有警告。
- -Xlint:none
- 停用 Java 語言規格未強制執行的所有警告。
- -Xlint:-xxx
- 停用警告 xxx,其中 xxx 是 -Xlint:xxx 支援的其中一個警告名稱。
- -Xlint:cast
- 針對不必要且多餘的投放運算式發出警告。
- -Xlint:deprecation
- 警告:如何使用已淘汰的項目。
- -Xlint:dep-ann
- 針對使用 @deprecated Javadoc 註解記錄,但沒有 @Deprecated 註解的項目發出警告。
- -Xlint:empty
- 顯示空白陳述式的警告訊息。
- -Xlint:fallthrough
- 查看開關功能,確認是否有發生問題的情況,並在找到任何警告時顯示警告訊息。
- -Xlint:finally
- 針對無法正常完成的 finally 子句提出警告。
- -Xlint:rawtypes
- 因原始類型未檢查的作業而收到警告。
- -Xlint:serial
- 在可序列化類別缺少 serialVersionUID 定義的警告訊息。
- -Xlint:static
- 警告執行個體中呼叫的序列方法。
- -Xlint:unchecked
- 針對 Java 語言規格所強制執行的未勾選轉換警告,提供更詳細的資訊。
- -Xlint:varargs
- 警告變數引數 (varargs) 方法的不安全使用情形,特別是含有不可解析引數的方法。
- -Xno-jsni-warnings
- 如果使用 JSNI (GWT) 原生程式碼分隔符號而不是 OCNI 分隔符號,則會收到警告。