ホームページ >Java >&#&チュートリアル >RT コンパイルを使用せずに Java から Clojure 関数を呼び出す方法は?

RT コンパイルを使用せずに Java から Clojure 関数を呼び出す方法は?

DDD
DDDオリジナル
2024-12-21 19:10:12832ブラウズ

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

RT コンパイルなしで Java から Clojure と相互運用する

Clojure から Java への clojure.lang.RT クラスの利用に関する推奨事項は古いにもかかわらず相互運用性を考慮して、現在のアプローチではこの方法は必要ありません。この改良された方法には、Clojure コードをスタンドアロン JAR にコンパイルし、それを Java から直接呼び出すことが含まれます。以下はステップバイステップのガイドです:

  1. Clojure コードのコンパイル:

    • 必要な関数を含む Clojure ファイルを作成します。 Java からの呼び出し。
    • Clojure ファイルに :methods が含まれていることを確認してください。 Java で静的メソッドを生成するためのキーワード。
    • コマンド lein jar を使用してファイルを JAR にコンパイルします。
  2. Java から Clojure 関数にアクセス:

    • 生成された Clojure を含めますJava プロジェクトのクラスパス内の JAR。
    • 必要な Clojure クラスをインポートし、- プレフィックスを付けて静的メソッドを呼び出す Java クラスを作成します。
  3. 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. Java コードの例:

    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 の実行プログラム:

    • javac で Java クラスをコンパイルし、jar または IDE で JAR を生成します。
    • JAR を実行して Java から Clojure 関数を呼び出します。

このアプローチにより、次の間のシームレスな相互運用性が可能になります。 Clojure と Java により、中間ステップや複雑なコンパイル手順が不要になります。

以上がRT コンパイルを使用せずに Java から Clojure 関数を呼び出す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。