From bfa7ade0db6d36efc721e36dc41627dbd76b0176 Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Sun, 16 Oct 2016 19:20:13 +1100 Subject: Adapt to the removal of sun.boot.class.path In Java 9. we can no longer introspect the boot classpath with a JVM provided system property. Instead, this commit passes a custom property which will be found by PathResolver when it constructs the compiler classpath. --- src/compiler/scala/tools/ant/templates/tool-unix.tmpl | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/compiler/scala/tools/ant/templates/tool-unix.tmpl b/src/compiler/scala/tools/ant/templates/tool-unix.tmpl index 7ab23eb556..b5a238f7be 100755 --- a/src/compiler/scala/tools/ant/templates/tool-unix.tmpl +++ b/src/compiler/scala/tools/ant/templates/tool-unix.tmpl @@ -197,6 +197,14 @@ fi # to java to suppress "." from materializing. if [[ "$usebootcp" == "true" ]]; then classpath_args=("-Xbootclasspath/a:$TOOL_CLASSPATH" -classpath "\"\"") + # Note that the version numbers go 1.7, 1.8, 9, 10, ... + java_release="$(cat $JAVA_HOME/release | grep JAVA_VERSION)" + if [[ ! "$java_release" =~ JAVA_VERSION=\"1\. ]]; then + # Java 9 removed sun.boot.class.path, and the supposed replacement to at least see + # the appended boot classpath (jdk.boot.class.path.append) is not visible. + # So we have to pass a custom system property that PathResolver will find. + classpath_args+=("-Dscala.boot.class.path=$TOOL_CLASSPATH") + fi else classpath_args=(-classpath "$TOOL_CLASSPATH") fi -- cgit v1.2.3