无法在类路径上找到Clojure资源

时间:2013-02-27 15:49:06

标签: java clojure leiningen counterclockwise

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

我正在使用clojure.lang.RT package在我的Java代码中调用.clj个文件。在命名命名空间时,.clj文件遵循了正确的约定,例如ns test.clojure.coretest.clojure包中,其中核心是.clj文件。在了解了一些信息之后,我在我的src/test/java中添加了java-source-path(即java-source-path src/test/clojure)和source-path(即source-path project.clj)。

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

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

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

1 个答案:

答案 0 :(得分: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();