我正在尝试使用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。

10-05 18:26