2010-06-04 14 views
5

Parece que no puedo encontrar una manera de iniciar Clojure REPL con la biblioteca contrib incluida. Si entendí la documentación correctamente, este comando debería hacerlo:¿Cómo instalar clojure-contrib en 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. 

Pero como puede ver, falla. Copié el archivo clojure-contrib.jar a la carpeta C:\clojure-1.1.0.

¿Alguien me puede ayudar a hacerlo bien?

actualización
Gracias al post de Michał me di cuenta de que mi error fue con dos puntos donde tenía que usar un punto y coma. Esto funciona:

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

Respuesta

7

(respuesta actualizada para hacer explícita la solución real, mientras que fue un poco escondida en el original ...)

La cadena de ruta de clases en Windows utiliza ; como separador. P.ej.

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

Alternativamente, se puede utilizar un comodín para incluir todos los frascos en el directorio dado en la ruta de clase (que es un JDK 1.6 Además, no funcionaría con 1,5):

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

(I piense usando comillas dobles aquí está bien en Windows, no puede verificar aunque ...)

+0

¡Gracias! No son realmente las rutas completas, ¡simplemente tuve que usar un punto y coma en lugar de dos puntos como separador para los archivos jar! Aarg .. – StackedCrooked

+0

¡Hah! Es bueno que lo hayas notado. Noté la diferencia en los separadores e incluso revisé dos veces los documentos que contenía, y luego por alguna razón insondable omití mencionarlo explícitamente en la respuesta. Sin mencionar que tampoco noté el prompt 'C: \ clojure-1.1.0>' en la pregunta ... Está bien que todo termine bien, supongo. :-) He hecho una edición ahora para el beneficio de futuros lectores. –