2010-07-30 30 views
9

He creado el archivo "hello.clj"Cómo compilar archivo en clojure

 
(ns clojure.examples.hello 
    (:gen-class)) 

(defn -main 
    [greetee] 
    (println (str "Hello " greetee "!"))) 

y intento compilar

 
clojurec hello.clj 

pero me dio este error

 
Exception in thread "main" java.io.FileNotFoundException: Could not locate hello/clj__init.class or hello/clj.clj on classpath: 
    at clojure.lang.RT.load(RT.java:398) 
    at clojure.lang.RT.load(RT.java:367) 
    at clojure.core$load__5058$fn__5061.invoke(core.clj:3734) 
    at clojure.core$load__5058.doInvoke(core.clj:3733) 
    at clojure.lang.RestFn.invoke(RestFn.java:413) 
    at clojure.core$load_one__5010.invoke(core.clj:3578) 
    at clojure.core$compile__5065$fn__5067.invoke(core.clj:3744) 
    at clojure.core$compile__5065.invoke(core.clj:3743) 
    at clojure.lang.Var.invoke(Var.java:346) 
    at clojure.lang.Compile.main(Compile.java:56) 

I intente también poner esto en el archivo y ejecutar clojore hello.clj

 
(compile 'clojure.examples.hello) 

Pero recibí el mismo error.

+0

Solo por curiosidad, ¿qué es 'clojurec' ...? ¿De donde lo sacaste? Sin embargo, realmente recomiendo Leiningen (ver mi respuesta para más detalles). Se usa ampliamente en la comunidad de Clojure y no debería tener problemas para obtener ayuda para usarlo. –

+0

Es compilador estándar de clojure en el sistema Linux, su script de shell con la invocación: exec java -cp /usr/share/java/clojure.jar:"$dest_dir$extra_clas spath "-Dclojure.compile.path =" $ dest_dir "clojure .lang.Compile "$ @" – jcubic

Respuesta

6

Un espacio de nombres llamado clojure.examples.hello necesidades de residir en un archivo llamado hello.clj en un directorio $CPDIR/clojure/examples, donde $CPDIR es un directorio incluido en la ruta de clase de la JVM.

En general, intentar establecer el classpath y emitir el comando de compilación a mano tiene poco sentido. Use Leiningen en su lugar; el README tiene una explicación bastante completa de lo que necesitarás hacer.

Cuestiones relacionadas