2010-02-07 31 views
1

我使用clojure和逆时针在eclipse中创建了一个基本的hello世界类,我可以用clojure编译它并没有问题。如何在Eclipse中使用逆时针编译的Clojure类

 
(ns ca.ckovacs.test.helloWorld 
    (:gen-class)) 

(defn -main 
    [greetee] 
    (println (str "Hello " greetee "!"))) 

我看到这在我的/ classes文件夹中生成三个类:

 

helloWorld__init.class 
helloWorld$_main__135.class 
helloWorld$loading__6309__auto__133.class 

但为什么我没有拿到一个HelloWorld.class的?

我最终希望能够在Eclipse中使用Clojure编译的类。

我必须错过某些明显的东西,但是阅读clojure.org上的Compilation页面,发布的示例hello world说您可以像加载其他java类一样加载helloWorld类。

谢谢。

回答

3

我不知道是什么问题,但我最终重命名了我的软件包名称,并得到了预期的helloWorld.class文件。

我怀疑这个问题可能是因为我有两个独立的源路径(一个用于Java,一个用于Clojure)共享相同的包名称空间。

2

嗯...因为没有人提供了答案,我会尝试给一些指导,即使我不使用Eclipse或逆时针。

如果您希望在从Java调用Java时调用类似静态方法的Clojure函数,则需要在(gen-class)语句中添加一些信息,特别是:methods关键字。

前几天看到我对“Calling Clojure from Java”的回答。它提供了一个在NetBeans上开发的解决方案,可以为您的问题提供一些指导。

处理这两种语言之间的类/对象/继承有点复杂。

+0

我想出了问题(至少如何解决它)。 感谢您的信息,我发现它很有用。 – ckovacs 2010-02-08 22:17:31

相关问题