summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorRobby <robby@santoslab.org>2018-03-13 11:41:43 -0500
committerNikolay Tatarinov <5min4eq.unity@gmail.com>2018-03-13 19:41:43 +0300
commita9d4eea6f5b81cdbef84724e612bf07954e2673c (patch)
tree8d9219a5c9f8e5153e71c21e797a4cb1ff32e733 /core
parentac7eedc2cc858a778a63a7e03ccd03bac2676871 (diff)
downloadmill-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.scala11
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)
+ }
}
}