summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-03-18 10:35:57 -0700
committerLi Haoyi <haoyi.sg@gmail.com>2018-03-18 10:35:57 -0700
commit3715c7bfb88de8daa86cd663d22057ec776cedcc (patch)
tree0a85083bcdb27867110e33c05c15ac13ae2865a9 /core
parent350a3115afca590bee6311dbed4a657fe9cca375 (diff)
parent0063444b422e317b9ee68c789f9b3224dcf28825 (diff)
downloadmill-3715c7bfb88de8daa86cd663d22057ec776cedcc.tar.gz
mill-3715c7bfb88de8daa86cd663d22057ec776cedcc.tar.bz2
mill-3715c7bfb88de8daa86cd663d22057ec776cedcc.zip
Merge branch 'master' of github.com:lihaoyi/mill
Diffstat (limited to 'core')
-rw-r--r--core/src/mill/util/ClassLoader.scala19
1 files changed, 19 insertions, 0 deletions
diff --git a/core/src/mill/util/ClassLoader.scala b/core/src/mill/util/ClassLoader.scala
new file mode 100644
index 00000000..a1b42158
--- /dev/null
+++ b/core/src/mill/util/ClassLoader.scala
@@ -0,0 +1,19 @@
+package mill.util
+
+import java.net.{URL, URLClassLoader}
+
+import io.github.retronym.java9rtexport.Export
+
+object ClassLoader {
+ def create(urls: Seq[URL], parent: java.lang.ClassLoader): URLClassLoader = {
+ 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)
+ }
+ }
+}