我正在尝试使用guava和j2objc,但我收到了错误:
j2objc TestJava.java
translating TestJava.java
error: TestJava.java:1: The import com.google.common cannot be resolved
error: TestJava.java:10: Lists cannot be resolved
Translated 0 files: 2 errors, 0 warnings
跑步时:
j2objc Test.java
Test.java
包含:
import com.google.common.collect.Lists;
import java.util.ArrayList;
public class Test {
public static void TestMethod() {
ArrayList<String> objects = Lists.newArrayList();
objects.add(0, "Hello world");
System.out.println(objects);
}
}
我已经下载了最新版本0.9.5并将其添加到.profile
:
export PATH=$HOME/bin/j2objc-0.9.5:$PATH
为了使用番石榴,我还需要做些什么?
谢谢!
答案 0 :(得分:1)
j2objc转换器使用Java编译器作为其前端,因此在转换时需要使用与编译为Java类时相同的类路径和源路径。如果您运行&#34; javac Test.java&#34;,那么您将收到类似的错误,因为guava jar需要包含在类路径中。 j2objc发行版包含lib / guava-jdk5.jar,因此运行&#34; javac -classpath /lib/guava-jdk5.jar Test.java&#34;,并在必要时修复guava jar目录的任何问题。一旦javac可以编译它,替换&#34; j2objc&#34;为&#34; javac&#34;使用相同的参数,它应该转换得很好。
您不必首先使用javac,但只要报告了翻译错误,就可以快速测试该问题是否与缺少的源或类路径相关。
与Java的一个区别是,当您链接应用程序时,需要-lguava标志来包含该库。