Why Does Clojure Use the Context Classloader by Default?
问题 Why is use-context-classloader set to true by default? Why doesn't Clojure use the current class loader? 回答1: you can override its behavior by setting clojure.lang.Compiler.LOADER to the class loader ie. final ClassLoader ccl= ClojurePlugin.class.getClassLoader(); clojure.lang.Var.pushThreadBindings(clojure.lang.RT.map( clojure.lang.Compiler.LOADER, ccl) ); try { ... clojure.lang.RT.loadResourceScript( cljFile ); ... }finally{ clojure.lang.RT.popThreadBindings(); } where ClojurePlugin is your