6

何らかの理由で clojure REPL を jline で動作させることができません。私がしたことは、github から clojure リポジトリを git clone し、それをビルドするために ant を実行してから、jline-0.9.94.jar を clojure.jar のあるディレクトリにダウンロードすることでした。次に、次のコマンドを実行します。

java -cp jline-0.9.94.jar:clojure.jar jline.ConsoleRunner clojure.main

次のエラーが表示されます。

    Exception in thread "main" java.lang.ClassNotFoundException: clojure.main
 at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Class.java:164)
 at jline.ConsoleRunner.main(Unknown Source)

現在のディレクトリにあるファイルは次のとおりです。

vvshs-macbook-2:clojure vvsh$ ls
build.xml                                 clojure-sources-1.2.0-master-SNAPSHOT.jar epl-v10.html                              src
classes                                   clojure-sources.jar                       jline-0.9.94.jar                          test
clojure-1.2.0-master-SNAPSHOT.jar         clojure.iml                               pom-template.xml
clojure-slim-1.2.0-master-SNAPSHOT.jar    clojure.jar                               pom.xml
clojure-slim.jar                          doc                                       readme.txt
vvshs-macbook-2:clojure vvsh$ 

clojure 1.1 と lein repl で同じエラーが発生しました (lein は独自のバージョンの clojure を維持しているようです)。

ちなみに、これはmac ox 10.5.8です

java version "1.5.0_24"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_24-b02-357-9M3165)
Java HotSpot(TM) Client VM (build 1.5.0_24-149, mixed mode, sharing)

誰が何が間違っていて、それを修正する方法を知っていますか? プロジェクトを開始するために lein repl を機能させたいと思っています。

4

4 に答える 4

3

jline*.jarから冗長を削除し、 /Library/Java/Extensions1 つの jline インストールのみを に残すことで、今日同じ問題を解決しましたCLASSPATH

より長い説明:サブディレクトリ にすべての依存関係をインストールするlabreplをビルドしようとしlibていましたが、以前に .jar ファイルを にコピーして jline をセットアップしていました/Library/Java/Extensionsどうやらは、java.lang.ClassLoaderjline の 2 つのインストールを処理できませんでした。2 つの場所で利用可能なものがある限り、Clojure REPL を開始するコマンド ラインは、コマンドに与えられた順序に応じて、クラスjline.ConsoleRunnerおよびの後者を見つけることができませんでした。 .clojure.mainjava

これが役立つことを願っています。

于 2010-07-11T13:48:29.113 に答える
1

フォークにインストールするための別の手順を参照してください。

http://github.com/jedschneider/leiningen

readme を更新するためにプル リクエストを送信しましたが、応答がありませんでした。lein をインストールしたら、bin/leiningen.sh を ~/bin に入れて、どこでも呼び出すことができます。.bash_profile にショートカットを追加しました

alias lein="~/bin/leiningen.sh"

次に、呼び出しlein replてシェルを起動します

優れた学習ツールである labrepl もチェックしてください。

http://github.com/relevance/labrepl

于 2010-07-10T11:49:40.213 に答える
0

あなたのjava ...コマンドは問題ないように見えます。すべてのjarファイルがあるべき場所にあるかどうかを再確認します(そして、それらがあなたが思っているjarファイルであること、つまりclojure.jar、実際にはローカルに構築したものであり、古いものではありません)。

にライニンゲンを使用したい場合はlein repl、それも可能です。「独自のバージョンの Clojure を維持している」と言うのは正確ではないことに注意してください。Leiningen は、プロジェクト指向のワークフローの一部として使用されるビルド ツールであり、個別の Clojure jar はプロジェクト固有のものです。試してみるためのサンプル プロジェクトを作成するには、lein new foo都合のよい場所を指定します。次にcd foo、Clojure と contrib jar を取得しlein deps(project.cljによって提供されるスケルトンlein newには両方のエントリが既に含まれています)、REPL を で開始する必要がありますlein repl

cljr最後に、新しいプロジェクトを使用できます。cljr replすぐに始められる包括的な README があり、「プロジェクト」を作成する必要なく、どこでも Clojure REPL を入手できると言うことができます。

于 2010-07-10T13:13:07.683 に答える
0

私は同じ問題に遭遇しました。jline.ConsoleRunner (少なくとも私が使用している jline-0.9.5 について) は、「java」コマンドの -cp オプションからクラス検索パスに追加されたパスでクラス ファイルを見つけることができないようです。これは、現在のディレクトリにどちらのクラスも見つからないことを意味します。/Library/Java/Extensions/ の下にも clojure.main をコピーすることでこれを解決しました。

于 2010-11-28T12:05:44.310 に答える