質問

何らかの理由で私はclojure REPLをjlineで動作させることができません、私がしたことはgit githubからclojureリポジトリをクローンし、antを実行してビルドし、jline-0.9.94をダウclojureを使用してディレクトリにjarを作成します。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$ 

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

ちなみに、これはmac ox10.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をプロジェクトを開始するために働かせたいと思っています。

役に立ちましたか?

解決

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

より長い説明:私は labrepl を作りようとしていました。サブディレクトリlibのすべての依存関係ですが、.jarファイルを/Library/Java/ExtensionsにコピーしてJLINを設定しました。明らかにjava.lang.ClassLoaderは、JLインの2つのインストールを処理できず、2つに入手可能なものがある限りClojure Relpを開始するコマンドラインは、jline.ConsoleRunnerコマンドに与えられた順序に応じて、Cresses clojure.mainおよびjavaの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

あなたの java ... コマンドは正常に見えますが、すべてのjarがあるべき場所にあるかどうかを再確認します(そして、それらがあることを確認します ザ- あなたが彼らがそうだと思う瓶、すなわち clojure.jar 実際にはあなたがローカルに構築したものであり、いくつかの超時代遅れのものではありません)。

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

最後に、新しいものを使うことができます cljr プロジェクト;それはあなたが時間がないの開始する必要があります包括的なREADMEを持っており、それを使用すると、言うことができるでしょう cljr repl 「プロジェクト」を作成する必要なしに、どこでもClojure REPLを取得する。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top