“J2OBJC_HOME\不\正确\定义\在\Settings.xcconfig

"J2OBJC_HOME\ not\ correctly\ defined\ in\ Settings.xcconfig

伙计们最后 2 到 3 天,我正在尝试 运行 一个用于 J2OBJC 转换的示例项目。首先,我遇到了找不到 j2objc 命令的问题,通过将路径添加到 /etc/paths 文件来解决此问题。现在我遇到了 J2OBJC_HOME path not defined correctly.

这样的问题

`/bin/sh -c if\ [\ !\ -f\ \"${J2OBJC_HOME}/j2objc\"\ ];\ then\ echo\ \"J2OBJC_HOME\ not\ correctly\ defined\ in\ Settings.xcconfig,\ currently\ set\ to\ \'${J2OBJC_HOME}\'\" ;\退出\1;\fi;\ \"${J2OBJC_HOME}/j2objc\"\ -d\ ${DERIVED_FILES_DIR}\ -sourcepath\ \"${PROJECT_DIR}/类\"\ - -no-package-directories\ -use-arc\ --prefix\ Othello.Engine=JOE\ -g\ ${INPUT_FILE_PATH};

警告:发生了非法的反射访问操作 警告:com.google.devtools.j2objc.javac.JavacEnvironment(文件:/Users/*****/Documents/j2objc-2.0.5/lib/j2objc.jar)对字段 [=37= 的非法反射访问] 警告:请考虑将此报告给 com.google.devtools.j2objc.javac.JavacEnvironment 的维护者 警告:使用 --illegal-access=warn 启用进一步非法反射访问操作的警告 警告:所有非法访问操作将在未来的版本中被拒绝 错误:翻译“/Users/*****/Downloads/j2objc-sample-reversi-master/Classes/Othello/Engine/Score.java”时出现内部错误 java.lang.NoSuchFieldError: 运算符 在 com.google.devtools.j2objc.javac.TreeConverter.convertBinary(TreeConverter.java:513) 在 com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:346) 在 com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) 在 com.google.devtools.j2objc.javac.TreeConverter.convertArrayAccess(TreeConverter.java:476) 在 com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:230) 在 com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) 在 com.google.devtools.j2objc.javac.TreeConverter.convert 分配(TreeConverter.java:497) 在 com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:236) 在 com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) 在 com.google.devtools.j2objc.javac.TreeConverter.convertExpressionStatement(TreeConverter.java:691) 在 com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:263) 在 com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) 在 com.google.devtools.j2objc.javac.TreeConverter.convert 块 (TreeConverter.java:543) 在 com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:238) 在 com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) 在 com.google.devtools.j2objc.javac.TreeConverter.convertMethodDeclaration(TreeConverter.java:888) 在 com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:283) 在 com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) 在 com.google.devtools.j2objc.javac.TreeConverter.convertAbstractTypeDeclaration(TreeConverter.java:390) 在 com.google.devtools.j2objc.javac.TreeConverter.convertClassDeclaration(TreeConverter.java:603) 在 com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:246) 在 com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) 在 com.google.devtools.j2objc.javac.TreeConverter.convertCompilationUnit(TreeConverter.java:173) 在 com.google.devtools.j2objc.javac.JavacParser.parseFiles(JavacParser.java:173) 在 com.google.devtools.j2objc.pipeline.FileProcessor.processBatch(FileProcessor.java:141) 在 com.google.devtools.j2objc.pipeline.FileProcessor.processInputs(FileProcessor.java:70) 在 com.google.devtools.j2objc.pipeline.TranslationProcessor.processInputs(TranslationProcessor.java:78) 在 com.google.devtools.j2objc.J2ObjC.run(J2ObjC.java:127) 在 com.google.devtools.j2objc.J2ObjC.main(J2ObjC.java:177)

线程异常 "main" java.lang.NullPointerException 在 com.google.devtools.j2objc.javac.JavacParser.parseFiles(JavacParser.java:175) 在 com.google.devtools.j2objc.pipeline.FileProcessor.processBatch(FileProcessor.java:141) 在 com.google.devtools.j2objc.pipeline.FileProcessor.processInputs(FileProcessor.java:70) 在 com.google.devtools.j2objc.pipeline.TranslationProcessor.processInputs(TranslationProcessor.java:78) 在 com.google.devtools.j2objc.J2ObjC.run(J2ObjC.java:127) 在 com.google.devtools.j2objc.J2ObjC.main(J2ObjC.java:177)`

伙计们,请帮我解决上面的问题,任何人都已经遇到过这样的问题。

提前致谢。

与大多数“*_HOME”设置一样,您需要指定它(例如 JAVA_HOME、KOTLIN_HOME、GROOVY_HOME 等)。编辑 Settings.xconfig 并将 J2OBJC_HOME 设置为您添加到 /etc/paths.

的同一路径

下一个问题是 j2objc 没有 运行 和 Java 9 JDK(即将推出)。好消息是你的 Mac 上可以安装多个 JDK,j2objc 脚本会选择最新的 Java 8 JDK 安装,不管 Java 9 JDK 是默认值。转到 Oracle's Java SE Downloads page,获取最新的 Java 8 JDK 并安装它。