Heim >Java >javaLernprogramm >Wie rufe ich Clojure-Funktionen aus Java auf, ohne die RT-Kompilierung zu verwenden?

Wie rufe ich Clojure-Funktionen aus Java auf, ohne die RT-Kompilierung zu verwenden?

DDD
DDDOriginal
2024-12-21 19:10:12834Durchsuche

How to Call Clojure Functions from Java without Using RT Compilation?

Interoperabilität mit Clojure aus Java ohne RT-Kompilierung

Trotz veralteter Empfehlungen zur Verwendung der Klasse clojure.lang.RT für Clojure-to-Java Aufgrund der Interoperabilität erfordern aktuelle Ansätze diese Methode nicht mehr. Bei dieser verbesserten Methode wird Clojure-Code in ein eigenständiges JAR kompiliert und direkt aus Java aufgerufen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Clojure-Code kompilieren:

    • Erstellen Sie eine Clojure-Datei mit den gewünschten Funktionen Aufruf aus Java.
    • Stellen Sie sicher, dass die Clojure-Datei das Schlüsselwort :methods enthält, um statische Methoden zu generieren Java.
    • Kompilieren Sie die Datei in ein JAR mit dem Befehl: lein jar.
  2. Zugriff auf Clojure-Funktionen aus Java:

    • Fügen Sie die generierte Clojure-JAR in Ihre Java-Projekte ein Klassenpfad.
    • Erstellen Sie Java-Klassen, die die erforderlichen Clojure-Klassen importieren und die statischen Methoden mit dem Präfix - aufrufen.
  3. Beispiel für Clojure-Code:

    (ns com.example.clojure)
    
    (defn binomial [n k]
      (let [a (inc n)]
        (loop [b 1
               c 1]
          (if (> b k)
            c
            (recur (inc b) (* (/ (- a b) b) c))))))
  4. Beispiel Java-Code:

    import com.example.clojure;
    
    public class JavaCaller {
    
        public static void main(String[] args) {
            System.out.println("(binomial 5 3): " + clojure.binomial(5, 3));
            System.out.println("(binomial 10042, 111): " + clojure.binomial(10042, 111));
        }
    }
  5. Java-Programm ausführen:

    • Kompilieren Sie die Java-Klasse mit javac und generieren Sie eine JAR mit jar oder einer IDE.
    • Führen Sie das JAR aus, um die Clojure-Funktionen aufzurufen Java.

Dieser Ansatz ermöglicht eine nahtlose Interoperabilität zwischen Clojure und Java, wodurch Zwischenschritte oder komplexe Kompilierungsverfahren überflüssig werden.

Das obige ist der detaillierte Inhalt vonWie rufe ich Clojure-Funktionen aus Java auf, ohne die RT-Kompilierung zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn