在clojure repl中使用Java类

时间:2014-11-15 14:09:34

标签: clojure

我有以下Java类:

public class Speak {
   public static String greet() {
     return "Hello! I am a human!";
   }
}

我已将此编译为Speak.class

我现在如何将其导入clojure repl以及类路径和命名空间如何适应?

由于

1 个答案:

答案 0 :(得分:2)

使用标准的clojure repl,类文件需要在用于启动repl的类路径上可用。这是一个例子

java -cp pathToClojure\clojure.jar;.\src;.\lib;.\lib\* clojure.main %1

我为clojure源包含了src,包含了类文件的lib文件夹,以及包含在jar文件中的类的lib *。

在此示例中,Speak类可以包含在内并与之一起使用:

user=> (import Speak)
Speak
user=> (Speak/greet)
"Hello! I am a human!"

这假定您在开始repl之前已设置了类路径。如果你想在repl启动后向classpath添加一些内容,那就更复杂了。可以找到执行此操作的示例代码here