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 是否可为 null 注解。
--no-package-directories
生成文件时不要为 Java 软件包创建目录。
--no-segmented-headers
生成标题,并在每个声明类型周围提供防护。在破坏导入周期时很有用。
--no-wrapper-methods
不要为构造函数和静态方法生成 Objective-C 封装容器方法。(J2ObjC 会为这些可执行文件生成 C 函数)
--nullability
将可为 null 和非 null 注解转换为 Objective-C 注解。
--patch-module
选项会直接转发到 Java 编译器(如需了解详情,请参阅 javac 帮助)。
--prefix <软件包=前缀>
使用指定的前缀替换软件包名称。
--prefixes <文件>
指定带有前缀定义的属性文件。
--preserve-full-paths
生成与输入文件具有相同相对路径的输出文件。
-processor:<class1>[,<class2>...]
要运行的注解处理器的名称;绕过默认发现流程。
-processorpath<路径>
指定在哪里查找注解处理器。
--reflection:{all,none,enum-constants,-enum-constants,name-mapping,-name-mapping}
生成或排除 Java 反射所需的特定支持。
--reserved-names <文件>
避免重新定义系统标头中存在的标识符。
--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<language>
指定要输出的语言。可能的值包括 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