我想在我的Java代码中访问我的一些clojure函数(我正在使用Eclipse和CounterClockWise)。首先,我不知道该怎么做?但后来我找到了一些答案here。找不到类路径上的Clojure资源
我使用clojure.lang.RT package
在我的Java代码中调用.clj
文件。在命名命名空间时,.clj
文件遵循如ns test.clojure.core
文件的适当惯例,在test.clojure
包中,其中内核是.clj
文件。另外,根据一些信息,我在我的project.clj
中添加了java源路径(即java源路径src/test/java
)和源路径(即源路径src/test/clojure
)。
但是,当我运行我的Java文件后出现以下错误 - a)Could not locate Clojure resource on classpath
b)Attempting to call unbound fn
。
如果社区中的任何人通过详细的程序或教程可以帮助我(假设我是绝对初学者),我将不胜感激,因为只有我可以获得的信息(使用clojure.lang.RT
)非常少。
期待得到一个完整的答案来结束我的沮丧。
会试试这个。顺便说一句,有任何适当的文件和/或相同的教程。 – user2108042 2013-02-27 17:42:54
嗨Ankur,我尝试了下面的clojure代码: **'(ns test.clojure.core) (defn hello-world [x] (str“Hello”x))'**和Java代码: **'RT.var(“clojure.core”,“eval”)。invoke(RT.var(“clojure.core”,“hello-world”)。invoke(“(use'test.clojure.core)” )); \t \t \t IFn fn =(IFn)RT.var(“test.clojure.core”,“hello”); \t \t \t对象result = fn.invoke(); '** 现在我得到这个错误:**试图调用未FN:#' clojure.core /你好世界** – user2108042 2013-02-27 18:07:17
'RT。 var(“clojure.core”,“eval”)。invoke(RT.var(“clojure.core”,“read-string”)。invo ke(“(use'test.clojure.core)”)); IFn fn =(IFn)RT.var(“test.clojure.core”,“hello-world”);对象结果= fn.invoke(“test”);' – Ankur 2013-02-28 04:12:01