1

Java コードでいくつかの clojure 関数にアクセスしようとしています (Eclipse と CounterClockWise を使用しています)。まず、私はそれを行う方法がわかりませんでしたか?しかし、ここでいくつかの答えを見つけました。

Javaコードでファイルclojure.lang.RT packageを呼び出すために使用しています。.clj名前空間に名前を付けている間、.cljファイルの適切な規則が守られてns test.clojure.coretest.clojureます.clj。また、いくつかの情報に従って、 java-source-path (つまり java-source-path src/test/java) と source-path (つまり source-path src/test/clojure) を my.xml に追加しましたproject.clj

しかし、Java ファイルを実行すると、次のエラーが表示されます - a) Could not locate Clojure resource on classpathb) Attempting to call unbound fn

コミュニティの誰かが (私がまったくの初心者であると仮定して) 詳細な手順やチュートリアルを通して私を助けてくれたら、私は感謝しclojure.lang.RTます.

私の欲求不満を終わらせるために完全な答えを得ることを楽しみにしています.

4

1 に答える 1

2

RT.loadResourceScript問題の原因となっているものを使用していると思います。次のようなものを試すことができます。

//Load the namespace 
    RT.var("clojure.core","eval").invoke(RT.var("clojure.core","read-string").invoke("(use 'test.clojure.core)"));

//Find a function in namespace
    IFn fn = (IFn)RT.var("test.clojure.core","hello");

//Call that function
    fn.invoke();
于 2013-02-27T16:27:38.660 に答える