【问题标题】:Does j2objc support guava?j2objc 是否支持番石榴?
【发布时间】:2012-12-01 02:33:16
【问题描述】:
我正在尝试使用 j2objc 来翻译一些 java 代码。当我尝试导入任何类时,我的代码使用 google Guava 库
import com.google.common.collect.Maps;
我收到一条错误消息,提示无法解决。
The import com.google.common cannot be resolved
是否需要做一些特别的事情才能在 j2objc 转换器中启用 Guava 支持?
【问题讨论】:
标签:
java
objective-c
guava
【解决方案1】:
Guava 的翻译目前不是 j2objc 发行版的一部分,但计划包含该库的一个大子集(包括 Maps)。今天项目做的是下载 Guava 源码,然后翻译他们想要使用的类。
这种方法的一个问题是确定依赖类的闭包;即 Maps 依赖哪些 Guava 类,这些类的依赖关系是什么等等。我们让 javac 确定:
$ javac -d /tmp/guava -sourcepath <guava-source-paths> com.google.common.collect.Maps
$ cd /tmp/guava
$ find com -name '*.class' > /tmp/all-classes.list # list all classes
$ fgrep -v '$' < /tmp/all-classes.list > /tmp/classes.list # get rid of inner classes
$ sed -s '/class$/java/' < /tmp/classes.list > /tmp/source-files
计划在下一个版本中使用确定源文件列表的工具。