Question

Pour une raison que je ne peux pas obtenir clojure REPL travailler avec jline, ce que j'ai fait était git clone du clojure hors référentiel github puis exécuter ant pour le construire, puis-je télécharger jline-0.9.94.jar dans le répertoire clojure.jar, puis exécutez la commande suivante:

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

Et obtenez l'erreur suivante:

    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)

Voici les fichiers dans mon répertoire courant:

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$ 

J'ai eu le même message d'erreur sur clojure 1.1 et lein repl(il semble lein de maintenir sa propre version de clojure).

Par ailleurs, c'est sur 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)

Quelqu'un sait quel est le problème et comment le résoudre?Comme je veux vraiment avoir lein de réplication de travail pour démarrer un projet.

Était-ce utile?

La solution

J'ai résolu le même problème aujourd'hui par la suppression d'un redondant jline*.jar à partir de /Library/Java/Extensions, en laissant juste un jline installation dans CLASSPATH.

Une longue explication: J'ai essayé de construire labrepl, qui installe toutes ses dépendances dans le sous-répertoire lib, mais j'avais déjà mis en place jline en copiant le .le fichier jar à /Library/Java/Extensions. Apparemment, java.lang.ClassLoader ne pouvais pas gérer deux installations de jline, et tant qu'il n'y avait ceux disponibles en deux endroits, la ligne de commande de démarrage d'une Clojure REPL serait de ne pas réussir à trouver le dernier des classes jline.ConsoleRunner et clojure.main, selon l'ordre qu'ils ont donné à l' java commande.

J'espère que cette aide.

Autres conseils

voir mes autres instructions pour l'installer sur mon fourche:

http://github.com/jedschneider/leiningen

J'ai envoyé une demande d'extraction de mettre à jour le fichier lisez-moi, mais n'a pas obtenu une réponse sur elle.une fois que vous avez lein installé, vous pouvez mettre la bin/leiningen.sh dans votre ~/bin et de l'appeler de n'importe où.j'ai mis un raccourci sur mon .bash_profile

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

et puis appeler lein repl pour lancer un shell

aussi la caisse de la labrepl qui est un excellent outil d'apprentissage.

http://github.com/relevance/labrepl

Votre java ... la commande a l'air bien, j'avais le double de vérifier si tous les pots sont là où vous pensez qu'ils devraient être (et qu'ils sont l' les pots-vous qu'ils sont, c'est à dire clojure.jar est en fait celui que vous avez construit localement et n'est pas un super-obsolète).

Si vous souhaitez utiliser Leiningen pour lein repl, c'est possible aussi.Notez qu'il n'est pas exact de dire qu'il maintient sa propre version de Clojure";Leiningen est un outil de construction, utilisé dans le cadre d'un projet orienté flux de travail et les différentes Clojure pots sont spécifiques au projet.Pour créer un exemple de projet à jouer autour de, dire lein new foo un endroit commode.Ensuite, vous aurez besoin de cd foo, obtenez vos Clojure & contrib pots avec lein deps (le project.clj squelette fourni par lein new déjà contient des entrées pour les deux) et de commencer un REPL avec lein repl.

Enfin, vous pouvez utiliser le nouveau cljr projet;il possède une vaste README qui devrait vous aider à démarrer en un rien de temps, et avec elle, vous serez en mesure de dire cljr repl pour obtenir un Clojure REPL n'importe où, sans la nécessité de créer un "projet".

J'ai rencontré le même problème.jline.consolerunner (au moins sur JLON-0.9.5 que j'utilise) semble ne pas être capable de trouver des fichiers de classe dans le chemin ajouté aux chemins de recherche de classe à partir de -cp Option de la commande "Java".Cela signifie qu'il ne peut pas trouver de classes dans votre annuaire actuel.J'ai résolu ceci en copiant le clojure.Main sous / bibliothèque / java / extensions / aussi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top