2010-02-07 30 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

相關問題