J2ObjC(Java to Objective-C)是什么?
J2ObjC(Java to Objective-C)是Google 的开源命令行工具,可以将 Java 代码转成适用于iOS(iPhone/iPad)平台上的 Objective-C 代码。J2ObjC可以使Java 代码成为iOS 应用构建的一部分,且无需对生成的文件进行编辑。该工具现在还不能转换所有的Java代码。
其目标是为了用Java编写应用的non-UI代码(比如数据访问和应用逻辑),可以在Web应用(使用GWT开发)、Android应用和iOS应用之间共享。
J2ObjC支持大部分Java语言和和运行时的客户端应用特性,包括异常、内部类和匿名类、泛型类型、线程和反射等,支持JUnit 测试转换和执行。
J2ObjC项目目前处于alpha版和beta版之间的阶段,谷歌的几个项目也在使用J2ObjC,不过用它处理首次启动的新项目,他们发现存在一些bug。
不同的开发者使用Java的方式也会有差别,该工具现在还不能转换所有的Java代码。
J2ObjC 不能做什么?
J2ObjC不能构建完整的iOS应用,因为它不提供任何形式的独立于平台的UI 工具包,将来也没有这个打算,iOS UI代码需使用苹果的iOS SDK,用Objective-C或者Objective-C++进行编写(Android UI使用Android的API,web app UI使用GWT等)。
要求:
Xcode 4及以上版本
iOS 5.0及以上版本
Java for OS X
Apache Maven
J2ObjC的初期版本号是0.5,2013年6月,谷歌发布了版本号为0.8的J2ObjC。更新内容:
1.Full translation support for Java 7's new language features, including try-with-resources, multi-catch, strings in switch statements, binary literals and underscores in numeric literals.
2.Integration of cycle_finder into JRE build, eliminating all cycles in that library.
3.Better import detection and generation.
4.ARC build support for JRE emulation library.
5.Lots of bug fixes and code generation improvements.
项目地址:https://code.google.com/p/j2objc/