Pregunta

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

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

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

Básicamente, es el archivo de ejemplo que se proporciona en la documentación de Clojure .

He colocado este archivo adecuadamente en clojure / src / test / test.clj , y debería poder compilar con (compile 'test.test) , pero Sigo 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 clase. He intentado ejecutar Clojure con todos los comandos estándar que se encuentran en documenation de Clojure , así como la sugerencia más reciente del hilo. java -classpath.; src; classes; clojure.jar clojure.main .

Si ayuda, mi sistema de archivos se ve así:

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

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

¿Fue útil?

Solución

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 falta un paréntesis derecho en su main . Versión corregida:

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

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

Otros consejos

 C:\clojrue\java -cp .\src;.\classes;clojure.jar 
    -Dclojure.compile.path=classes clojure.lang.Compile test.test
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top