我正在尝试使用j2objc工具将一些Android项目逻辑文件转换为ObjectiveC代码。
我的实际项目遇到很多类型错误,因此我尝试至少转换helloworld,例如:
public class Test {
public static void main(String args[]) {
System.out.println("Hello");
}
}
可以使用
javac
完美地编译它,但是当我尝试在其上运行j2objc
时,它返回奇怪的错误:The type java.lang.Object can not be resolved. It is indirectly referenced from required .class files.
这里有什么问题,最重要的是,我应该怎么办?
编辑:
命令行如下:
j2objc -sourcepath src/main/java src/main/java/org/takino/mtga/impl/datatypes/*java
环境:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home
(由
/usr/libexec/java_home
返回) 最佳答案
按照Getting Started页上的步骤进行操作,该步骤与您已经在执行的操作相似。您应该没有太大的麻烦,因为Linux和OS X与从命令行使用并没有什么不同,因为bash是两者的默认外壳。
@chrylis关于路径很有用,因为j2objc脚本将关联的lib / jre_emul.jar指定为要使用的引导类路径,而这是所有JRE类(包括Object)所在的位置。也许您的j2objc发行版搞砸了。
尝试再次下载j2objc发行版,解压缩它,但不要移动任何文件。然后使用/ j2objc命令,它将找到正确的jre_emul.jar。