Support running Kotlin compiler CLI on Java 9 on Unix

Workaround IDEA-170005, IDEA-170494 and similar issues by opening the
required packages from java.base to the unnamed module

 #KT-14988 In Progress
This commit is contained in:
Alexander Udalov
2017-03-10 16:35:02 +03:00
parent 03a26c4ce0
commit a5d70cfa68
2 changed files with 12 additions and 0 deletions
+3
View File
@@ -600,6 +600,9 @@
<attribute name="Class-Path" value="${compiler.manifest.class.path}"/>
<attribute name="Main-Class" value="org.jetbrains.kotlin.cli.jvm.K2JVMCompiler"/>
<!-- This is needed if the compiler is run on Java 9 via "java -jar kotlin-compiler.jar" -->
<attribute name="Add-Opens" value="java.base/java.lang java.base/java.util java.base/java.util.concurrent.atomic java.base/jdk.internal.misc"/>
</manifest>
</jar>
</sequential>
+9
View File
@@ -67,6 +67,15 @@ then
else
[ -n "$KOTLIN_COMPILER" ] || KOTLIN_COMPILER=org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
java_args=("${java_args[@]}" "-noverify")
if [[ -n $(command -v head) && -n $(command -v tail) && $($JAVACMD -version 2>&1 | head -2 | tail -1) =~ build\ 9 ]]; then
java_args=("${java_args[@]}" \
"--add-opens" "java.base/java.lang=ALL-UNNAMED" \
"--add-opens" "java.base/java.util=ALL-UNNAMED" \
"--add-opens" "java.base/java.util.concurrent.atomic=ALL-UNNAMED" \
"--add-opens" "java.base/jdk.internal.misc=ALL-UNNAMED")
fi
kotlin_app=("${KOTLIN_HOME}/lib/kotlin-preloader.jar" "org.jetbrains.kotlin.preloading.Preloader" "-cp" "${KOTLIN_HOME}/lib/kotlin-compiler.jar" $KOTLIN_COMPILER)
fi