我了解在 clojure 中导入 Java 类的一般想法,如下所示:
(import 'a.random.Class)
但是,假设我有一个文件 Example.java,其中包含我想使用的“示例”类,如何导入这样的东西?
抱歉,如果已经回答了这个相当愚蠢的问题,我一直在环顾四周,但在发布之前一无所获,并提前感谢任何可以阐明的人。
我了解在 clojure 中导入 Java 类的一般想法,如下所示:
(import 'a.random.Class)
但是,假设我有一个文件 Example.java,其中包含我想使用的“示例”类,如何导入这样的东西?
抱歉,如果已经回答了这个相当愚蠢的问题,我一直在环顾四周,但在发布之前一无所获,并提前感谢任何可以阐明的人。
为了能够使用 中定义的类Example.java
,您必须对其进行编译并将生成的类文件放在类路径中。
如果此 Java 文件是 Clojure 项目中的帮助程序,则可以使用 Leiningen 自动执行该过程:
(defproject foo "1.2.3-SNAPSHOT"
; ...
:java-source-paths ["src/main/java"]
)
假设它Example.java
位于 的子目录中src/main/java
,当您使用它启动 REPL 或准备项目的 jar 时,Leiningen 将编译它并将其包含在类路径中。(还有:javac-options
用于指定要作为字符串向量传递给 Java 编译器的选项。)
如果您的 Java 源代码树更广泛且独立于项目的 Clojure 端,则将其打包为单独的 Java 项目可能更有意义。Clojure 端将使用 Java 项目作为依赖项。