从 Java 调用 Clojure
简介:
Clojure 和 Java 之间的接口是常见的许多项目中的要求。然而,使用 clojure.lang.RT 的旧方法现在已经过时了。在这篇文章中,我们将解释执行此集成的简化方法,假设有一个预构建的 Clojure jar 并将其包含在类路径中。
分步说明:
创建 Clojure命名空间:
使用 :gen-class 关键字定义 Clojure 命名空间,以指定可从 Java 访问的 Java 类和方法。例如:
定义静态方法包装器:
使用 Java- 包装要从 Java 调用的 Clojure 函数可调用包装器,以连字符为前缀(例如,-binomial)。这允许 Java 调用 Clojure 函数。
构建并包含 Clojure Jar:
将 Clojure 命名空间编译为 jar 文件并包含它位于 Java 项目的类路径中。确保 Clojure jar 也存在于类路径中。
从 Java 调用 Clojure:
在您的 Java 程序中,导入 Clojure 类并像调用 Java 方法一样调用静态方法。例如:
设置编译参数:
编译Java部分时,指定类路径以包含Clojure jar和包将生成的类和清单放入 JAR 中文件。
更新的示例(使用现代工具):
使用 Clojure 1.5.1、Leiningen 2.1.3 和 JDK 1.7.0更新25:
Clojure 部分:
创建 Leiningen 项目并使用以下内容更新 project.clj:
Java部分:
编译 Java 类:
创建清单文件 (Manifest.txt ):
将 Java 类打包将 Clojure jar 放入 JAR 文件中:
运行 Java 程序:
此更新的示例演示了互操作性使用现代工具在 Clojure 和 Java 之间切换。
以上是如何从 Java 高效调用 Clojure 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!