ホームページ > Java > &#&チュートリアル > Java から Clojure 関数を効率的に呼び出すにはどうすればよいですか?

Java から Clojure 関数を効率的に呼び出すにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-02 10:43:09
オリジナル
636 人が閲覧しました

How Can I Efficiently Call Clojure Functions from Java?

Java から Clojure を呼び出す

はじめに:

Clojure と Java 間のインターフェースは一般的です多くのプロジェクトで必要とされています。ただし、clojure.lang.RT を使用した古いアプローチは現在では時代遅れです。この投稿では、事前に構築された Clojure jar とそれがクラスパスに含まれていることを前提として、この統合を実行するための簡略化された方法について説明します。

ステップバイステップの説明:

  1. Clojure を作成する名前空間:

    :gen-class キーワードを使用して Clojure 名前空間を定義し、Java からアクセスできる Java クラスとメソッドを指定します。例:

    (ns com.domain.tiny
      (:gen-class
        :name com.domain.tiny
        :methods [#^{:static true} [binomial [int int] double]]))
    ログイン後にコピー
  2. 静的メソッド ラッパーを定義します:

    Java から呼び出したい Clojure 関数を Java-先頭にハイフンを付けた呼び出し可能なラッパー (-binomial など)。これにより、Java で Clojure 関数を呼び出すことができます。

  3. Clojure Jar をビルドしてインクルードします。

    Clojure 名前空間を jar ファイルにコンパイルし、インクルードします。 Java プロジェクトのクラスパス内にあります。 Clojure jar がクラスパスにも存在することを確認します。

  4. Java から Clojure を呼び出す:

    Java プログラムで、Clojure クラスをインポートします。静的メソッドを Java メソッドであるかのように呼び出します。例:

    import com.domain.tiny;
    
    public class Main {
        public static void main(String[] args) {
            System.out.println("(binomial 5 3): " + tiny.binomial(5, 3));
        }
    }
    ログイン後にコピー
  5. コンパイル パラメーターの設定:

    Java 部分をコンパイルするときに、Clojure jar とパッケージを含めるクラスパスを指定します。結果として得られるクラスとマニフェストを JAR に変換するfile.

更新された例 (最新ツールの使用):

Clojure 1.5.1、Leiningen 2.1.3、および JDK 1.7.0 の使用アップデート25:

Clojure パート:

  • Leiningen プロジェクトを作成し、次の内容で project.clj を更新します:

    ; Same as the original example code from the introduction
    ログイン後にコピー
    ログイン後にコピー
  • lein を使用して依存関係が解決されていることを確認するdeps.
  • lein jar を使用して Clojure コードを jar にパッケージ化します。
  • Clojure jar とビルドされた Clojure jar を便利な場所に置きます。

ジャワパート:

  • 元の例のように Java クラス (Main.java など) を作成します。
  • Java クラスをコンパイルします:

    javac -g -cp target\com.domain.tiny-0.1.0-SNAPSHOT.jar -d target\src\com\domain Main.java
    ログイン後にコピー
  • マニフェスト ファイルを作成する(Manifest.txt):

    ; Same as the original example code from the introduction
    ログイン後にコピー
    ログイン後にコピー
  • Java クラスと Clojure jar を JAR ファイルにパッケージ化します:

    jar cfm Interop.jar Manifest.txt Main.class lib\com.domain.tiny-0.1.0-SNAPSHOT.jar lib\clojure-1.5.1.jar
    ログイン後にコピー
  • Javaを実行するプログラム:

    java -jar Interop.jar
    ログイン後にコピー

この更新された例は、最新のツールを使用した Clojure と Java 間の相互運用性を示します。

以上がJava から Clojure 関数を効率的に呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート