Clojure自定义Java互操作

Clojure自定义Java互操作,java,clojure,interop,Java,Clojure,Interop,我试图找到关于将自定义Java文件集成到Clojure项目中的最佳文档和信息。我已经检查了这个项目,看到所有的文件都是.java文件,位于/src/main/java目录下。不幸的是,它没有使用Leiningen(我正在使用的),所以我看不出它是如何与java文件一起调用的 假设我想使用Clojure的一个大型Java项目,比如,它被抽象为一个标准的、主要的、主要的入口点,比如publicstaticvoidmain()。我是否只是将每个.java文件转储到我的类路径中,并希望得到最好的结果?要

我试图找到关于将自定义Java文件集成到Clojure项目中的最佳文档和信息。我已经检查了这个项目,看到所有的文件都是
.java
文件,位于
/src/main/java
目录下。不幸的是,它没有使用Leiningen(我正在使用的),所以我看不出它是如何与java文件一起调用的


假设我想使用Clojure的一个大型Java项目,比如,它被抽象为一个标准的、主要的、主要的入口点,比如
publicstaticvoidmain()
。我是否只是将每个
.java
文件转储到我的类路径中,并希望得到最好的结果?

要在Leiningen项目中包含您自己的
.java
文件:

(defproject my-project "0.0.1-SNAPSHOT"
  ; ...
  :java-source-paths ["src/main/java" "src_other/java"]) ; It's up to you how to structure paths
在此设置中,您的
.java
文件编译将由Leiningen管理

要包含一些Maven存储库中可用的现有Java项目,只需添加依赖项。对于MALLET,它将看起来像:

(defproject my-project "0.0.1-SNAPSHOT"
  ; ...
  :dependencies [[cc.mallet/mallet "2.0.7"]])
最后,如果目标是包含私有
jar
文件,那么最好的选择是创建本地Maven存储库


在所有这些情况下,您都可以执行普通的Java Clojure互操作。

在类路径中包含Java文件对Clojure毫无用处。您可以用与clojure库相同的方式要求leiningen提供java库,并且这些类将以与您在jvm中使用任何内置类相同的方式实现互操作。如果你问的是如何进行互操作,我想这里的其他问题也涵盖了这一点。