Domanda

Ho provato a compilare un test.clj molto semplice in Clojure senza successo. Ho un thread nella Clojure Google Group con diverse risposte, ma nulla ha aiutato. Per riassumere rapidamente, ecco il mio file clojure:

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

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

Fondamentalmente è il file di esempio fornito nella documentazione Clojure .

Ho inserito questo file in modo appropriato in clojure / src / test / test.clj e dovrei essere in grado di compilare con (compila 'test.test) , ma Continuo a ricevere l'errore:

java.io.IOException: The system cannot find the path specified (test.clj:1)
che mi porta a credere che sia un problema di percorso di classe. Ho provato a eseguire Clojure con tutti i comandi standard forniti nella Documentazione Clojure , nonché l'ultimo suggerimento del thread java -classpath.; src; classes; clojure.jar clojure.main .

Se aiuta, il mio filesystem si presenta così:

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

P.S. Sono in esecuzione su Vista Ultimate, quindi potrebbe possibilmente essere un problema di autorizzazioni, ma ho controllato le autorizzazioni e non sono riuscito a trovare nulla di sbagliato in esse.

È stato utile?

Soluzione

Output della console per la compilazione di test.clj su 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=>

I file di classe generati si trovano nella directory di classi.

Inoltre, tieni presente che ti manca una parentesi corretta nella principale . Versione corretta:

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

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

Altri suggerimenti

 C:\clojrue\java -cp .\src;.\classes;clojure.jar 
    -Dclojure.compile.path=classes clojure.lang.Compile test.test
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top