Maison >Java >javaDidacticiel >Comment appeler des fonctions Clojure depuis Java sans utiliser la compilation RT ?

Comment appeler des fonctions Clojure depuis Java sans utiliser la compilation RT ?

DDD
DDDoriginal
2024-12-21 19:10:12948parcourir

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

Interopérer avec Clojure à partir de Java sans compilation RT

Malgré les recommandations obsolètes d'utiliser la classe clojure.lang.RT pour Clojure-to-Java interopérabilité, les approches actuelles ne nécessitent plus cette méthode. Cette méthode améliorée consiste à compiler le code Clojure dans un JAR autonome et à l'appeler directement depuis Java. Voici un guide étape par étape :

  1. Compilez le code Clojure :

    • Créez un fichier Clojure contenant les fonctions que vous souhaitez appel depuis Java.
    • Assurez-vous que le fichier Clojure inclut le mot-clé :methods pour générer des méthodes statiques dans Java.
    • Compilez le fichier dans un JAR à l'aide de la commande : lein jar.
  2. Accédez aux fonctions Clojure depuis Java :

    • Incluez le JAR Clojure généré dans le fichier de votre projet Java classpath.
    • Créez des classes Java qui importent les classes Clojure nécessaires et invoquez les méthodes statiques avec le préfixe -.
  3. Exemple de code Clojure :

    (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. Exemple 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. Exécuter le programme Java :

    • Compilez la classe Java avec javac et générez un JAR avec jar ou un IDE.
    • Exécutez le JAR pour appeler les fonctions Clojure à partir de Java.

Cette approche permet une interopérabilité transparente entre Clojure et Java, éliminant le besoin d'étapes intermédiaires ou de procédures de compilation complexes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn