2011-12-20 49 views
1

開始編輯: 主要是我希望我的Clojure程序使用Java類。使用Clojure構建Java使用蛋糕

我也收到一些很好的建議,從蛋糕回來,因爲他們 合併。

如果有人閱讀此文章,可以推薦一本書來建立Java/Clojure構建環境,而不是學習Java,我將不勝感激。 結束編輯:

儘管我可以讀取Java代碼,但我不是Java程序員。我正在使用Cake成功構建Clojure主程序,並且需要創建一個Java類成爲我的Clojure main的一部分。我無法弄清楚如何將MyClass.class合併到Clojure構建中。

首先這裏是我的project.clj後面跟着幾行應用程序.clj文件。

(defproject ba1-app "0.0.1-SNAPSHOT" 
    :description "TODO: add summary of your project" 
    :dependencies [[org.clojure/clojure "1.2.1"] 
       [org.clojure/tools.cli "0.1.0"]] 
    :main ba2-app) 

(ns ba2-app 
    (:gen-class) 
    (:use [clojure.string :only [split]] 
      [clojure.string :only [join]])) 

(def^:dynamic avail-trans [\W \D]) 
(def^:dynamic acct-types [[\C 0.02][\S 0.04] [\M 0.06]]) 
. 
. 
. 

1).java文件是否應該與.clj應用程序模塊進入同一目錄?

2)構建指令是什麼?

謝謝。

回答

2

這並不完全清楚你想要做什麼。我假設你想編譯java類並在你的clojure源代碼中使用。在這種情況下,你不必做特別的事情。把您希望您的Java類(比如目錄 '/ PROJECT_DIR/src目錄'),並添加

:java-source-path "src" 

project.clj文件。在這種情況下,java類將與clojure文件一起編譯,並且它們的包層次結構根將從您選擇的這個目錄開始。您現在可以像使用其他任何類一樣使用這些類 - :import子句以(ns ...)形式或直接(import ...)

UPD。還可以提到的是,你可以自由地將你的java源代碼目錄與你的clojure源代碼混合在一起,因此你可以在本例中將project.clj選項:source-path:java-source-part設置爲相同的值「src」。

+0

非常感謝您的回答。它有助於。 – octopusgrabbus 2011-12-21 16:38:19