5
我剛剛學習如何lein
,我想從Java源 使用由Clojure源中deftype
創建的類。這不包括在基本的 教程中,我無法讓它正常工作。Leiningen彙編命令?
問題是Java源碼不能導入Clojure類,因爲它還沒有編譯 。而Clojure類沒有編譯,因爲Java源代碼編譯被中止 。
我給一個小例子:
創建一個新項目:
lein new app javafoo
添加到
project.clj
:aot :all :java-source-paths ["src/java"]
投入
src/javafoo/core.clj
:(ns javafoo.core) (deftype PPoint [x y])
投入
src/java/JavaFoo.java
:package foo.java; import javafoo.core.PPoint; public class JavaFoo { public static void main(String[] args) { System.out.println("JavaFoo"); } }
嘗試編譯
lein compile
它失敗package javafoo.core doesn't exist
。 所以現在我要
- 註釋掉
:java-source-paths
- 編譯
- 取消註釋
:java-source-paths
- 編譯
最後,它的工作原理。有沒有辦法讓它從一開始就工作?