def CLdump(cl: ClassLoader = Thread.currentThread().getContextClassLoader) = {
val f = classOf[ClassLoader].getDeclaredField("classes")
f.setAccessible(true)
dump(cl)
def dump(cl: ClassLoader): Unit = {
if (cl == null) return
val classes = f.get(cl).asInstanceOf[java.util.Vector[java.lang.Class[_]]]
println(cl)
println(classes.toArray.map(cl => "\t" + cl.toString).mkString("\n"))
dump(cl.getParent)
}
}
Raw