Allow j2objc to access javac internals

This is necessary with recent JDK due to [JEP 396: Strongly Encapsulate JDK Internals by Default](https://openjdk.java.net/jeps/396)

PiperOrigin-RevId: 378780031
diff --git a/tools/j2objc/j2objc_wrapper.py b/tools/j2objc/j2objc_wrapper.py
index 2f830fe..63a0ef9 100755
--- a/tools/j2objc/j2objc_wrapper.py
+++ b/tools/j2objc/j2objc_wrapper.py
@@ -35,6 +35,13 @@
 
 _INCLUDE_RE = re.compile('#(include|import) "([^"]+)"')
 _CONST_DATE_TIME = [1980, 1, 1, 0, 0, 0]
+_ADD_EXPORTS = [
+    '--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED',
+    '--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
+    '--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED',
+    '--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED',
+    '--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED',
+]
 
 
 def RunJ2ObjC(java, jvm_flags, j2objc, main_class, output_file_path,
@@ -69,8 +76,9 @@
   try:
     j2objc_cmd = [java]
     j2objc_cmd.extend(filter(None, jvm_flags.split(',')))
+    j2objc_cmd.extend(_ADD_EXPORTS)
     j2objc_cmd.extend(['-cp', j2objc, main_class])
-    j2objc_cmd.extend(['@%s' % param_filename])
+    j2objc_cmd.append('@%s' % param_filename)
     subprocess.check_call(j2objc_cmd, stderr=subprocess.STDOUT)
   finally:
     if param_filename: