從Java 調用Clojure
簡介:
Clojurejure 之間的介面是常見的許多項目中的要求。然而,使用 clojure.lang.RT 的舊方法現在已經過時了。在這篇文章中,我們將解釋執行此整合的簡化方法,假設有一個預先建置的 Clojure jar 並將其包含在類別路徑中。
逐步說明:
建立Clojure命名空間:
建立Clojure命名空間:
(ns com.domain.tiny (:gen-class :name com.domain.tiny :methods [#^{:static true} [binomial [int int] double]]))
定義靜態方法包裝器:
建置並包含 Clojure Jar:
從 Java 呼叫 Clojure:
import com.domain.tiny; public class Main { public static void main(String[] args) { System.out.println("(binomial 5 3): " + tiny.binomial(5, 3)); } }
設定編譯參數:
更新的範例(使用現代工具):
使用Clojure 1.5.1、Leiningen 2.1.3 和JDK 1.7.0更新255 :
; Same as the original example code from the introduction
將 Clojure jar 和建造的 Clojure jar 放在方便的位置。
建立一個Java類別(例如 Main.java)如原始範例所示。
javac -g -cp target\com.domain.tiny-0.1.0-SNAPSHOT.jar -d target\src\com\domain Main.java
; Same as the original example code from the introduction
jar cfm Interop.jar Manifest.txt Main.class lib\com.domain.tiny-0.1.0-SNAPSHOT.jar lib\clojure-1.5.1.jar
java -jar Interop.jar
以上是如何從 Java 高效呼叫 Clojure 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!