Memanggil Clojure dari Java
Pengenalan:
Antaramuka antara Clojure dan Java adalah perkara biasa keperluan dalam banyak projek. Walau bagaimanapun, pendekatan lama menggunakan clojure.lang.RT kini sudah lapuk. Dalam siaran ini, kami akan menerangkan kaedah yang dipermudahkan untuk melaksanakan penyepaduan ini, dengan mengandaikan balang Clojure yang telah dibina dan kemasukannya dalam laluan kelas.
Arahan Langkah demi Langkah:
Buat Clojure Ruang nama:
Tentukan ruang nama Clojure dengan kata kunci :gen-class untuk menentukan kelas Java dan kaedah yang boleh diakses dari Java. Contohnya:
(ns com.domain.tiny (:gen-class :name com.domain.tiny :methods [#^{:static true} [binomial [int int] double]]))
Tentukan Pembungkus Kaedah Statik:
Balutkan fungsi Clojure yang anda ingin panggil dari Java dengan Java- pembalut boleh panggil, diawali dengan tanda sempang (cth., -binomial). Ini membolehkan Java menggunakan fungsi Clojure.
Bina dan Sertakan Balang Clojure:
Kompilkan ruang nama Clojure ke fail balang dan masukkan ia dalam laluan kelas projek Java. Pastikan balang Clojure turut terdapat dalam laluan kelas.
Panggil Clojure dari Java:
Dalam program Java anda, import kelas Clojure dan panggil kaedah statik seolah-olah kaedah Java. Contohnya:
import com.domain.tiny; public class Main { public static void main(String[] args) { System.out.println("(binomial 5 3): " + tiny.binomial(5, 3)); } }
Tetapkan Parameter Kompilasi:
Apabila menyusun bahagian Java, nyatakan laluan kelas untuk memasukkan balang dan pakej Clojure kelas yang terhasil dan nyata ke dalam JAR fail.
Contoh Kemas Kini (Menggunakan Alat Moden):
Menggunakan Clojure 1.5.1, Leiningen 2.1.3 dan JDK 1.7.0 Kemas kini 25:
Clojure Bahagian:
Buat projek Leiningen dan kemas kini projek.clj dengan yang berikut:
; Same as the original example code from the introduction
Bahagian Java:
Kompilasi kelas Java:
javac -g -cp target\com.domain.tiny-0.1.0-SNAPSHOT.jar -d target\src\com\domain Main.java
Buat fail manifes (Manifest.txt):
; Same as the original example code from the introduction
Bungkus kelas Java bersama balang Clojure ke dalam JAR fail:
jar cfm Interop.jar Manifest.txt Main.class lib\com.domain.tiny-0.1.0-SNAPSHOT.jar lib\clojure-1.5.1.jar
Jalankan program Java:
java -jar Interop.jar
Contoh yang dikemas kini ini menunjukkan kebolehoperasian antara Clojure dan Java menggunakan alatan kontemporari .
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanggil Fungsi Clojure dengan Cekap dari Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!