官方文档:
Project site: https://j2objc.org
J2ObjC blog: https://j2objc.blogspot.com
Questions and discussion: https://groups.google.com/group/j2objc-discuss
1、Targets—>Build Rules,添加自定义脚本
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}/JavaToObjc" --no-package-directories -g ${INPUT_FILE_PATH};
Output Files 添加
${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.h
${DERIVED_FILES_DIR}/${INPUT_FILE_BASE}.m
2、Build Setting 设置
3、新建一个java文件 TestLog.java
public class TestLog { public void log() { System.out.println("java println log"); } }
编译报错:
根据提示:other linker 添加 -liconv
编译成功
4、使用 #import “TestLog.h"
查看TestLog.h 代码
项目调用:
注意点:
1、如果报错 JDK not supported. Please set JAVA_HOME to JDK 1.8 or 11.
需要确认JAVA JDK版本为1.8以上
2、j2objc.sh 脚本里底62行 SUPPORTED_JAVA_VERSIONS=(1.8 11) ,将版本改为自己Java版本,我这里用的是SUPPORTED_JAVA_VERSIONS=(11.0.8)
3、第50行,指定了版本 readonly JAVA_HOME=`/usr/libexec/java_home -v 1.8 2> /dev/null`,将版本去掉,改为readonly JAVA_HOME=`/usr/libexec/java_home`