clojure是否可以读取和处理编译器生成的类(.class文件)?

时间:2011-10-07 05:11:21

标签: java clojure

是否可以读取和处理由java代码生成的类(.class文件)?

例如。)CalculateSum.java - > CalculateSum.class - > Clojure需要CalculateSum.class并将其嵌入到代码中?

3 个答案:

答案 0 :(得分:2)

Clojure旨在拥抱其主机平台JVM。 clojure编译器生成的类文件一旦创建就像来自任何其他源的类文件一样;所以实际上你已经这样做了;)

如果要使用java类,只需在命名空间中放入import语句:

(ns my.project
  (:import [com.them.library A B C]))

然后结帐

http://clojure.org/java_interop了解下一步做什么

答案 1 :(得分:2)

您只需确保类文件位于类路径中。

以下是一些示例代码。

hello.java:

 public class hello {
     public String sayHi() {
         return "hello world";
     }
 }

$ javac hello.java
$ java -cp clojure.jar:./ clojure.main
user=> (import 'hello) ;; Necessary in 1.2.1, but not 1.3.0
user=> (.sayHi (hello.))
"hello world"

答案 2 :(得分:1)

所有Clojure都是纯Java并在JVM上运行。它可以加载和使用任何有效的Java类。