标签:
在Xcode中使用J2ObjC有两种方式:External Build和Xcode Build Rule。
Xcode Build Rules方式:
一、创建新工程
打开Xcode,选择新建工程——随便选择一个Application,比如Single View application。
Product Name和Organization Name等自己随便填。我的工程名为Java2ObjcTest
二、添加J2ObjC Build Rule
1、新建一个Settings.xcconfig文件,内容如下:
J2OBJC_HOME = ${J2OBJC_INSTALL_DIR}/dist; HEADER_SEARCH_PATHS = $(inherited) "${J2OBJC_HOME}/include" "${DERIVED_FILES_DIR}"; LIBRARY_SEARCH_PATHS = $(inherited) "${J2OBJC_HOME}/lib"; OTHER_LDFLAGS = $(inherited) -l"z" -l"jre_emul" -l"icucore";
J2OBJC_HOME设置成通过J2Objc编译出来的dist目录。
2、将这个文件作为编译的配置:
工程——project——Info,debug和release都设置成这个配置文件。
3、添加自定义Build Rule:
工程——工程Target——Build Rules,点击加号创建新Rule。
Process选Java source files
Using选Custom script,在下面的输入框中输入:
if [ ! -f "${J2OBJC_HOME}/j2objc" ]; then echo "J2OBJC_HOME not correctly defined in Settings.xcconfig, currently set to ‘${J2OBJC_HOME}‘"; exit 1; fi; "${J2OBJC_HOME}/j2objc" -d ${DERIVED_FILES_DIR} -sourcepath "${PROJECT_DIR}/Classes" --no-package-directories --prefix Othello.Engine=OE -g ${INPUT_FILE_PATH};
在Output Files中,点击加号,添加两行:
${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.h
${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.m
结果应该是这样的:
4、添加java代码和依赖库
在工程中新建java source文件夹,并在其中加入java代码,比如我在TestJ2ObjC中添加了skylead/sign/SignTool.java。
代码如下:
package skylead.sign; public class SignTool { public static String getSign(String sign) { String result = "sign is : "+sign; return result; } }
在需要调用此方法的地方引入头文件:
#import "SignTool.h"
然后即可使用此类提供的静态方法:
NSString* test = [SkyleadSignSignTool getSignWithNSString:@"my sign"];
test的返回结果为:sign is : my sign
j2objc0.9.5使用二——xcode中使用j2objc
标签:
原文地址:http://www.cnblogs.com/xingjiu/p/4176688.html