2011-12-20 60 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