2009-03-03 12 views
7

He intentado compilar un test.clj muy simple en Clojure sin ningún éxito. Tengo un thread en el Clojure Google Group con varias respuestas, pero nada ha ayudado. Para resumir rápidamente, aquí está mi archivo clojure:Compilación de problemas en Clojure

(ns test.test 
    (:gen-class)) 

(defn -main 
    [gre] 
    (println (str "Hello " gre))) 

Básicamente es el archivo de ejemplo que se incluye en el Clojure documentation.

He colocado este archivo apropiadamente en clojure/src/test/test.clj, y debería ser capaz de compilar con (compile 'test.test), pero seguir recibiendo el error:

java.io.IOException: The system cannot find the path specified (test.clj:1)
lo que me lleva a creer que es un problema de ruta de clases. He intentado ejecutar Clojure con todos los comandos estándar dados en el Clojure documenation, así como la última sugerencia del hilo java -classpath .;src;classes;clojure.jar clojure.main.

Si ayuda, mi sistema de archivos tiene el siguiente aspecto:

-+-clojure 
+-classes/ 
+-+-src/ 
| |-+-test/ 
| | \-test.clj 
+-\-test.clj 
+-test.clj 
+-clojure.jar 

P. S. Me estoy ejecutando en Vista Ultimate por lo que puede posiblemente ser un problema de permisos, pero he comprobado los permisos y no pude encontrar nada malo con ellos.

Respuesta

9

salida de la consola para compilar test.clj en Windows:

C:\clojure>dir /b/s 
C:\clojure\classes 
C:\clojure\src 
C:\clojure\src\test 
C:\clojure\src\test\test.clj 

C:\clojure>java -cp c:\dev\clojure.jar;.\src;.\classes clojure.lang.ReplClojure 
user=> (compile 'test.test) 
test.test 
user=> 

Los archivos de clase generados están en el directorio de clases.

Además, tenga en cuenta que le falta un paréntesis derecho en su principal. versión corregida:

(ns test.test 
    (:gen-class)) 

(defn -main 
    [gre] 
    (println (str "Hello " gre))) 
+0

Excelente! ¡Muchas gracias, funciona como un encanto! Además, voy a editar la pregunta porque yo, esa pareja cercana, fue cortada de la copia/pega que hice. – Mike

+0

HI Tengo el mismo problema. ¿Qué podría estar mal? Intenté su solución: C: \ clojure> java -cp clojure-1.0.0.jar;. \ Src;. \ Classes clojure.lang.Repl user => (compile 'test.test) java.io .IOException: el sistema no puede encontrar la ruta especificada (test.clj: 1) – unj2

+1

Esto significa que no tiene el directorio classes/en CLASSPATH. –

0
C:\clojrue\java -cp .\src;.\classes;clojure.jar 
    -Dclojure.compile.path=classes clojure.lang.Compile test.test 
Cuestiones relacionadas