j2objc

j2objc 工具會將指定的 Java 來源檔案轉換成 Objective-C 或 Objective-C++ 來源,供 iOS 應用程式使用。

j2objc [ options ] file1.java ...

以下是支援的選項。如果是採用路徑的選項,多個目錄和 jar 檔案會以「:」分隔,例如使用 javajavac 指令完成。

常見選項

-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 分隔符號,則會收到警告。

另請參閱

J2objcc