diff options
author | Robby <robby@santoslab.org> | 2018-03-13 11:41:43 -0500 |
---|---|---|
committer | Nikolay Tatarinov <5min4eq.unity@gmail.com> | 2018-03-13 19:41:43 +0300 |
commit | a9d4eea6f5b81cdbef84724e612bf07954e2673c (patch) | |
tree | 8d9219a5c9f8e5153e71c21e797a4cb1ff32e733 /core | |
parent | ac7eedc2cc858a778a63a7e03ccd03bac2676871 (diff) | |
download | mill-a9d4eea6f5b81cdbef84724e612bf07954e2673c.tar.gz mill-a9d4eea6f5b81cdbef84724e612bf07954e2673c.tar.bz2 mill-a9d4eea6f5b81cdbef84724e612bf07954e2673c.zip |
Fixes for non-interactive (client/server) mode on Java 9 (#221)
* Fixes for client/server mode on Java 9.
* Upgraded ammonite to 1.0.5-4-c0cdbaf.
Diffstat (limited to 'core')
-rw-r--r-- | core/src/mill/util/ClassLoader.scala | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/core/src/mill/util/ClassLoader.scala b/core/src/mill/util/ClassLoader.scala index 7f4a9836..a1b42158 100644 --- a/core/src/mill/util/ClassLoader.scala +++ b/core/src/mill/util/ClassLoader.scala @@ -6,7 +6,14 @@ import io.github.retronym.java9rtexport.Export object ClassLoader { def create(urls: Seq[URL], parent: java.lang.ClassLoader): URLClassLoader = { - val rtOpt = if (ammonite.util.Util.java9OrAbove) Some(Export.export().toURI.toURL) else None - new URLClassLoader((urls ++ rtOpt).toArray, parent) + val cl = new URLClassLoader(urls.toArray, parent) + if (!ammonite.util.Util.java9OrAbove) return cl + try { + cl.loadClass("javax.script.ScriptEngineManager") + cl + } catch { + case _: ClassNotFoundException => + new URLClassLoader((urls ++ Some(Export.export().toURI.toURL)).toArray, parent) + } } } |