2011-12-06 11 views
3

Eclipseでは、CCWプラグインを使用して、clojureファイルをREPLにロードします。問題は、私自身のJavaクラスのimportステートメントがありますが、明らかにクラスパスにはありません。ClojureでのカスタムJavaクラスの使用REPL

(ns my-clj-ns 
    (:import [alg.gen Enumerator])) 

Clojure REPLで使用/テストしたいすべてのクラスからjarファイルを作成する必要がありますか?

現在、cljをREPLにロードしようとすると、エラーが発生します。 "Clojure REPLでファイルをロード"が正常に完了しませんでした。詳細は、ログを参照してください。 java.lang.NullPointerException

ご協力いただければ幸いです。

+0

jarファイルを作成せずにクラスファイルをロードすることができます。役に立つかもしれないhttp://stackoverflow.com/questions/7685698/clojure-compilation-and-running-with-cygwin/7686698#7686698 – BLUEPIXY

答えて

0

コードはわかりやすく表示されます。

私はこの問題があなたのアプリケーションのクラスパスに含まれるものを決定するEclipse Java Build Pathであると思われます。

特に、Javaクラスが別のプロジェクトにある場合、そのプロジェクトをビルドパスに追加するか(プロジェクト/プロパティ/ Javaビルドパス/プロジェクトを右クリックするか、jarとしてパッケージ化する必要があります)。

さらに洗練されたビルド要件を開始するときは、この種のものを処理するためにMavenを見てみるとよいでしょう。 Mavenは、最初に学習しセットアップする痛みですが、長期的にはそれを支払うことになります。

Leiningenも使用するのに最適なツールですが、私は個人的には次のような理由のためにそれを使用しないでください。

  1. それは、コマンドラインで素晴らしいですが、Eclipseのワークフローにそれほどうまく統合されていません。
  2. Mavenは、より広く使用され、より良いJavaの世界
1

あなたはLeiningenをそれらをコンパイルしたクラス/ディレクトリにクラスファイルを移動し、手動で

:javac-options {:destdir "classes/"} 
:java-source-path "src/main/java" ; location of Java source 

オプションまたはを使用して、あなたのためにこれらをコンパイルさせることができます。瓶を作る必要はありません。

1

あなたはCCWのREPLにいるとき、あなたはスタックトレースを見るために、ALT-Eを打つことができるでサポートされています。 NullPointerExceptionが発生している場合は、クラスパスの問題とは思われません。

0

これを行う方法を知りたい場合は、本当に素晴らしいガイドがあります。

https://github.com/technomancy/leiningen/blob/master/doc/MIXED_PROJECTS.md

しかし要旨では、Javaソースコードについては、以下のようなプロジェクト定義を持っています。

(defproject megacorp/superservice "1.0.0-SNAPSHOT" 
    :description "A Clojure project with a little bit of Java sprinkled here and there" 
    :source-paths  ["src/clojure"] 
    :java-source-paths ["src/java"]) 
関連する問題