一.下载:
https://github.com/google/j2objc/releases
如果下载的是source code,需要编译:
参考:https://developers.google.com/j2objc/guides/building-j2objc
*注意:路径上不要有空格,要不会报javac: invalid flag错误.
需要装maven
或者直接下载完整zip(推荐,更简单)
2.按照教程:
官方:https://developers.google.com/j2objc/guides/xcode-build-rules
中文:
- https://blog.csdn.net/longlongValue/article/details/79002597
- https://www.jianshu.com/p/f58ee097e773
简要来说就是添加:
-ljre_emul
J2OBJC_HOME
${J2OBJC_HOME}/frameworks
${J2OBJC_HOME}/lib ${J2OBJC_HOME}/include
发现还是会报错,官方的guide里面没有说要添加一下lib
在other linker flags:-liconv -lz
参考:https://www.jianshu.com/p/2cbe6c2806a4
添加build rules,例如:
if [ ! -f "${J2OBJC_HOME}/j2objc" ]; then echo "J2OBJC_HOME is not correctly defined, currently set to '${J2OBJC_HOME}'"; exit 1; fi;
"${J2OBJC_HOME}/j2objc" -d ${DERIVED_FILES_DIR} -sourcepath "${PROJECT_DIR}/your project" --no-package-directories -use-arc --prefix Java=J -g ${INPUT_FILE_PATH};
build一下转换
3.调用:
首先要注意类名,包和路径会变成类名
script里--prefix Othello.Engine(package name)=xxxx可以自定义类前缀
然后先#import "xxxx.h" (原Java类名),可能没有代码提示,需要import,才能调用,调用使用前缀+原java类名
一些错误解决:
Xcode 10 Error: Multiple commands produce
参考:https://stackoverflow.com/questions/52396637/build-error-xcode-10-multiple-commands-produce
If you use CocoaPods, click Xcode menu file
-> Workspace Settings
, And click Build system
choice Legacy Build System
https://i.stack.imgur.com/FqiID.png
If you not use CocoaPods, same of top , select Project Settings
4.--no-package-directories:
使用这个命令,就会在output Files的路径那里生成没有子包的转换文件,这样XCODE可以直接识别,但是类名不能重复,要不会覆盖掉.
如果不使用这个命令,可以生成有子包路径的转换文件,但是XCODE只会在output files的路径找文件,不会进入到子文件夹中,因此会找不到转换成功后的文件.
5.坑:
首先j2objc不是万能的,例如javax里面关于security和cypto的getInstance()方法就会报错,即使找到源码,转完把OC代码放进项目里面直接用也是报错的.
有时候通过xcode转是报错的,通过命令行反而会成功.可以转jar,但是jar必须是source jar
j2objc -d dest ./source/Test.jar --no-package-directories -use-arc
* 勾选export java files andresources
可以把用命令行转完的source files放进项目,像一般OC那样使用.
相关推荐
赠送jar包:j2objc-annotations-1.3.jar; 赠送原API文档:j2objc-annotations-1.3-javadoc.jar; 赠送源代码:j2objc-annotations-1.3-sources.jar; 赠送Maven依赖信息文件:j2objc-annotations-1.3.pom; 包含...
赠送jar包:j2objc-annotations-1.1.jar; 赠送原API文档:j2objc-annotations-1.1-javadoc.jar; 赠送源代码:j2objc-annotations-1.1-sources.jar; 赠送Maven依赖信息文件:j2objc-annotations-1.1.pom; 包含...
J2OBJC的出现解决了跨平台开发中的一个重要问题,尤其是在企业级应用中,许多公司已经积累了大量的Java代码,通过J2OBJC可以轻松地将这些代码引入到iOS项目中。 **J2OBJC的工作原理** J2OBJC的工作流程大致分为...
如果无法运行 查看J2OBJC_HOME是否正确; 查看Build Phases中的JRE.framework是否引入 相关的博客 http://blog.csdn.net/coooliang/article/details/79346001
javaweb/javaee 常用jar包,亲测可用,若需其他版本其他jar包请留言我看到后会上传分享
赠送jar包:j2objc-annotations-1.1.jar; 赠送原API文档:j2objc-annotations-1.1-javadoc.jar; 赠送源代码:j2objc-annotations-1.1-sources.jar; 赠送Maven依赖信息文件:j2objc-annotations-1.1.pom; 包含...
J2ObjC是一款强大的开源工具,主要功能是将Java语言编写的代码转换为Objective-C代码,使得Java开发者能够在iOS平台上进行开发,无需完全掌握Objective-C语言。这个工具由Google开发并维护,版本号为0.5.6,它为跨...
The type com.google.j2objc.annotations.ReflectionSupport$Level cannot be resolved. It is indirectly referenced from required .class files
java运行依赖jar包
**标题解析:** "j2objcDemo" 是一个基于j2objc框架的示例项目,旨在展示如何在iOS环境中调用Java代码。 **j2objc介绍:** j2objc 是Google开发的一个开源工具,它允许Java开发者将Java代码转换为Objective-C,以便...
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)... (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
标题中的“WSDL2Objc下载工具”是一个专门为iOS开发者设计的实用程序,它的主要功能是自动生成Objective-C客户端代码,从而简化与Web服务的集成过程。这个工具可以解析WSDL文件,并生成对应的Objective-C类,使得...
J2objc入门套件入门工具包是使用入门的好方法。 它包括一个简单的演示,向您... 假设在Mac上, $ln -s /path_to/j2objc/dist/j2objc /usr/bin/j2bjc$ln -s /path_to/j2objc/dist/j2objcc /usr/bin/j2objcc 通过键入以下
这是一个示例,展示了如何在使用 J2ObjC 的 iOS 应用程序中使用黑白棋游戏引擎。 最初的游戏奥赛罗由 Mats Luthman 编写,可从 他的网站获得。Mats 将其设计为既可以用作 Swing 应用程序,也可以用作命令行应用程序...
标题:“j2objc:Java转成Objective-C的用于移植Android库到iOS” j2objc 是一个开源工具,由Google开发,它的主要目的是帮助开发者将Java代码转换为Objective-C,使得Android库能够顺利地在iOS平台上运行。这个...
**标题解析:**"j2objc-dagger"指的是一个项目,它关注的是如何利用J2ObjC工具对Dagger2这个依赖注入框架进行翻译,以便在iOS平台上进行测试或运行。这里的“测试翻译”可能意味着将Java代码转换为Objective-C,以...
J2ObjC Gradle插件使Java源代码成为iOS应用程序构建的一部分,因此您可以用Java编写应用程序的非UI代码(例如应用程序逻辑和数据模型),然后由Android应用程序(本机为Java)和iOS共享应用程序(使用J2ObjC)。...
`WSDL2Objc` 是一个非常实用的工具,它能够帮助开发者自动生成适用于iPhone端的Objective-C源代码,从而简化了在iOS应用中调用Web服务的过程。这一工具的核心功能在于,它能够解析WSDL(Web Services Description ...
Java转Objective-C工具 J2ObjC ,J2ObjC 是一个来自 Google 的开源命令行工具,用于将 Java 代码转成 iOS 平台上...