Guys last 2 to 3 day I am trying to run an example project for J2OBJC
conversion. First I faced issue for the j2objc
command not found, fixed this issue by adding the path to the /etc/paths file. Now I am facing an issue like 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}\'\";\ exit\ 1;\ fi;\ \"${J2OBJC_HOME}/j2objc\"\ -d\ ${DERIVED_FILES_DIR}\ -sourcepath\ \"${PROJECT_DIR}/Classes\"\ --no-package-directories\ -use-arc\ --prefix\ Othello.Engine=JOE\ -g\ ${INPUT_FILE_PATH};
WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.google.devtools.j2objc.javac.JavacEnvironment (file:/Users/*****/Documents/j2objc-2.0.5/lib/j2objc.jar) to field com.sun.tools.javac.code.Symtab.java_base WARNING: Please consider reporting this to the maintainers of com.google.devtools.j2objc.javac.JavacEnvironment WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release error: internal error translating "/Users/*****/Downloads/j2objc-sample-reversi-master/Classes/Othello/Engine/Score.java" java.lang.NoSuchFieldError: operator at com.google.devtools.j2objc.javac.TreeConverter.convertBinary(TreeConverter.java:513) at com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:346) at com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) at com.google.devtools.j2objc.javac.TreeConverter.convertArrayAccess(TreeConverter.java:476) at com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:230) at com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) at com.google.devtools.j2objc.javac.TreeConverter.convertAssignment(TreeConverter.java:497) at com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:236) at com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) at com.google.devtools.j2objc.javac.TreeConverter.convertExpressionStatement(TreeConverter.java:691) at com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:263) at com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) at com.google.devtools.j2objc.javac.TreeConverter.convertBlock(TreeConverter.java:543) at com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:238) at com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) at com.google.devtools.j2objc.javac.TreeConverter.convertMethodDeclaration(TreeConverter.java:888) at com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:283) at com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) at com.google.devtools.j2objc.javac.TreeConverter.convertAbstractTypeDeclaration(TreeConverter.java:390) at com.google.devtools.j2objc.javac.TreeConverter.convertClassDeclaration(TreeConverter.java:603) at com.google.devtools.j2objc.javac.TreeConverter.convertInner(TreeConverter.java:246) at com.google.devtools.j2objc.javac.TreeConverter.convert(TreeConverter.java:202) at com.google.devtools.j2objc.javac.TreeConverter.convertCompilationUnit(TreeConverter.java:173) at com.google.devtools.j2objc.javac.JavacParser.parseFiles(JavacParser.java:173) at com.google.devtools.j2objc.pipeline.FileProcessor.processBatch(FileProcessor.java:141) at com.google.devtools.j2objc.pipeline.FileProcessor.processInputs(FileProcessor.java:70) at com.google.devtools.j2objc.pipeline.TranslationProcessor.processInputs(TranslationProcessor.java:78) at com.google.devtools.j2objc.J2ObjC.run(J2ObjC.java:127) at com.google.devtools.j2objc.J2ObjC.main(J2ObjC.java:177)
Exception in thread "main" java.lang.NullPointerException at com.google.devtools.j2objc.javac.JavacParser.parseFiles(JavacParser.java:175) at com.google.devtools.j2objc.pipeline.FileProcessor.processBatch(FileProcessor.java:141) at com.google.devtools.j2objc.pipeline.FileProcessor.processInputs(FileProcessor.java:70) at com.google.devtools.j2objc.pipeline.TranslationProcessor.processInputs(TranslationProcessor.java:78) at com.google.devtools.j2objc.J2ObjC.run(J2ObjC.java:127) at com.google.devtools.j2objc.J2ObjC.main(J2ObjC.java:177)`
Guys, please help me to fix the above, anyone already faces such issue.
Thanks in advance.
Like most "*_HOME" settings, it's something you need to specify (like JAVA_HOME, KOTLIN_HOME, GROOVY_HOME, etc.). Edit Settings.xconfig and set J2OBJC_HOME to the same path you added to /etc/paths.
The next problem is that j2objc does not run with a Java 9 JDK (coming soon). The good news is that multiple JDKs can be installed on your Mac, and the j2objc script will pick the latest Java 8 JDK installed, regardless of whether the Java 9 JDK is the default. Go to Oracle's Java SE Downloads page, get the latest Java 8 JDK and install it.