Jon*_*ive 3 clojure clojure-java-interop
我理解在clojure中导入Java类的一般想法,如下所示:
(import 'a.random.Class)
Run Code Online (Sandbox Code Playgroud)
但是,假设我有一个包含我想要使用的'Example'类的文件Example.java,如何导入这样的东西呢?
抱歉,如果这个相当noobish已经得到回答,我一直在环顾四周,但在发布之前一无所获,并提前感谢任何可以解决问题的人.
为了能够使用中定义的类Example.java,您必须编译它并将生成的类文件放在类路径上.
如果此Java文件是Clojure项目中的帮助程序,则可以使用Leiningen自动执行该过程:
(defproject foo "1.2.3-SNAPSHOT"
; ...
:java-source-paths ["src/main/java"]
)
Run Code Online (Sandbox Code Playgroud)
假设Example.java生活在src/main/javaLeiningen 的子目录中,当您使用它来启动REPL或准备一个项目罐时,它将编译它并将其包含在类路径中.(还有:javac-options指定选项作为字符串向量传递给Java编译器.)
如果您的Java源代码树更广泛且独立于项目的Clojure端,则将其打包为单独的Java项目可能更有意义.然后,Clojure方将使用Java项目作为依赖项.
| 归档时间: |
|
| 查看次数: |
561 次 |
| 最近记录: |