1

我正在尝试在我的 Java 代码中访问我的一些 clojure 函数(我正在使用 Eclipse 和 CounterClockWise)。首先,我不知道该怎么做?但后来我在这里找到了一些答案。

我用于在我的 Java 代码clojure.lang.RT package中调用文件。.clj在命名命名空间时,.clj文件的正确约定已被遵循,就像在核心是文件ns test.clojure.core的包中一样。同样根据一些信息,我在我的.test.clojure.cljsrc/test/javasrc/test/clojureproject.clj

但是,当我运行我的 Java 文件时,会出现以下错误 - a) Could not locate Clojure resource on classpathb) Attempting to call unbound fn

请如果社区中的任何人可以通过详细的程序或教程帮助我(假设我是绝对的初学者),我将不胜感激,因为我可以获得(用于使用clojure.lang.RT)的信息非常少。

期待得到一个完整的答案来结束我的沮丧。

4

1 回答 1

2

我猜你使用RT.loadResourceScript的是导致问题的。你可以尝试这样的事情:

//Load the namespace 
    RT.var("clojure.core","eval").invoke(RT.var("clojure.core","read-string").invoke("(use 'test.clojure.core)"));

//Find a function in namespace
    IFn fn = (IFn)RT.var("test.clojure.core","hello");

//Call that function
    fn.invoke();
于 2013-02-27T16:27:38.660 回答