Frage

Ich habe versucht, ohne Erfolg eine sehr einfache test.clj in Clojure zu kompilieren. Ich habe einen auf der Clojure Google-Gruppe mit mehreren Antworten, aber nichts hat geholfen. Um schnell zusammenfassen, hier ist meine clojure-Datei:

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

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

Im Grunde ist es die Beispieldatei in der Clojure Dokumentation .

Ich habe diese Datei sachgemässer in clojure/src/test/test.clj platziert und soll mit (compile 'test.test) kompilieren können, aber ich erhalte die Störung zu erhalten:

java.io.IOException: The system cannot find the path specified (test.clj:1)
die mich führt zu glauben, dass es ein Classpath Problem. Ich habe versucht, in der Clojure documenation sowie den neuesten Vorschlag aus dem Thread gegeben Clojure mit allen Standard-Befehle ausführen java -classpath .;src;classes;clojure.jar clojure.main.

Wenn es hilft, mein Dateisystem sieht wie folgt aus:

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

P. S. Ich bin auf Vista Ultimate ausgeführt wird, so kann es möglicherweise ein Berechtigungsproblem sein, aber ich habe die Berechtigungen geprüft und kann nichts falsch mit ihnen finden.

War es hilfreich?

Lösung

Konsolenausgabe für das Kompilieren test.clj unter 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=>

Die generierten Klassendateien sind in dem Klassen-Verzeichnis.

Beachten Sie auch, dass Sie eine rechte Klammer in Ihre main sind vermisst. Korrigierte Version:

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

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

Andere Tipps

 C:\clojrue\java -cp .\src;.\classes;clojure.jar 
    -Dclojure.compile.path=classes clojure.lang.Compile test.test
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top