2010-06-04 17 views
5

Je n'arrive pas à trouver un moyen de lancer le Clojure REPL avec la bibliothèque contrib incluse. Si je comprends bien la documentation correctement cette commande devrait le faire:Comment installer clojure-contrib sur Windows?

C:\clojure-1.1.0>"%ProgramFiles%\Java\jre6\bin\java.exe" -cp clojure.jar:clojure 
-contrib.jar clojure.main 
Exception in thread "main" java.lang.NoClassDefFoundError: clojure/main 
Caused by: java.lang.ClassNotFoundException: clojure.main 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
Could not find the main class: clojure.main. Program will exit. 

Mais comme vous pouvez le voir, il échoue. J'ai copié le fichier clojure-contrib.jar dans le dossier C:\clojure-1.1.0.

Quelqu'un peut-il m'aider à bien faire les choses?

Mise à jour
Merci au poste de Michał j'ai remarqué que mon erreur utilisait deux points où je devais utiliser un point-virgule. Cela fonctionne:

C:\clojure-1.1.0>"%ProgramFiles%\Java\jre6\bin\java.exe" -cp clojure.jar;clojure-contrib.jar clojure.main 
Clojure 1.1.0 
user=> 

Répondre

7

(réponse mis à jour pour la solution réelle explicite, alors qu'il était un peu caché dans l'original ...)

La chaîne classpath sous Windows utilise ; comme séparateur. Par exemple.

java.exe -cp "C:\clojure-1.1.0\clojure.jar;C:\clojure-1.1.0\clojure-contrib.jar" clojure.main 

Vous pouvez également utiliser un caractère générique pour inclure tous les pots dans le répertoire donné dans le classpath (c'est un JDK 1.6 plus, ne fonctionnerait pas avec 1,5):

java.exe -cp "C:\clojure-1.1.0\*" clojure.main 

(I pensez en utilisant des guillemets ici est ok dans Windows, ne peut pas vérifier si ...)

+0

Merci! Ce ne sont pas vraiment les chemins complets, j'ai simplement dû utiliser un point-virgule au lieu d'un deux-points comme séparateur pour les fichiers jar! Aarg .. – StackedCrooked

+0

Hah! Bon que vous l'ayez remarqué - j'ai remarqué la différence dans les séparateurs et même vérifié les docs dessus, alors pour une raison insondable négligée de le mentionner explicitement dans la réponse. Sans oublier que je n'ai pas non plus remarqué l'invite 'C: \ clojure-1.1.0>' dans la question ... Tout va bien qui finit bien, je suppose. :-) J'ai fait un montage maintenant pour le bénéfice des futurs lecteurs. –