2010-06-04 27 views
5

Non riesco a trovare un modo per avviare il REPL Clojure con la libreria contrib inclusa. Se ho capito bene la documentazione allora questo comando dovrebbe farlo:Come installare clojure-contrib su 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. 

Ma, come si può vedere, viene a mancare. Ho copiato clojure-contrib.jar nella cartella C:\clojure-1.1.0.

Qualcuno può aiutarmi a farlo bene?

Aggiornamento
Grazie al post di Michał ho notato che il mio errore stava usando i due punti in cui ho dovuto usare un punto e virgola. Questo funziona:

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

risposta

7

(Risposta aggiornato per rendere la soluzione reale esplicito, mentre è stato un po 'nascosto in originale ...)

La stringa di percorso di classe su Windows utilizza ; come separatore. Per esempio.

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

In alternativa, è possibile utilizzare un carattere jolly per includere tutti i barattoli nella data directory nel percorso di classe (che è un JDK 1.6, inoltre, non avrebbe funzionato con 1,5):

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

(I pensare utilizzando le virgolette qui è ok in Windows, non è possibile controllare però ...)

+0

Grazie! Non sono proprio i percorsi completi, ho semplicemente dovuto usare un punto e virgola invece dei due punti come separatore per i file jar! Aarg .. – StackedCrooked

+0

Hah! Bene che tu l'abbia notato - ho notato la differenza tra i separatori e ho persino controllato i documenti su di esso, poi per qualche motivo incomprensibile ho trascurato di menzionarlo esplicitamente nella risposta. Per non parlare del fatto che non ho nemmeno notato il prompt 'C: \ clojure-1.1.0> 'nella domanda ... Tutto va bene, finisce bene, immagino. :-) Ho fatto una modifica ora a beneficio dei futuri lettori. –