我有一个Clojure项目,正在使用leiningen。同时,我也在运行REPL时使用tools.namespace重新加载Clojure代码。如果我想在项目中包含Java源代码,那么我可以在REPL运行时重新编译和重新加载它吗?最方便/动态的方法是什么?我能否使其与tools.namespace良好配合使用?
现在(2016年及以后),更好的解决方案是使用Virgil。它会自动监视并编译您Leiningen项目中的所有Java代码,而不像Vinyasa需要手动重新导入。
public class MyClassFactory {
public static MyClass newInstance() {
URLClassLoader cl =
new URLClassLoader(new URL[] {getMyClassPath()}) {
public Class loadClass(String name) {
if ("MyClass".equals(name))
return findClass(name);
return super.loadClass(name);
}
};
return (MyClass) cl.loadClass("MyClass").newInstance();
}
}
project.clj
中添加:aot :all
? - halfelf