2009-03-03 8 views
7

J'ai essayé de compiler un test.clj très simple dans Clojure sans aucun succès. J'ai un thread sur le Clojure Google Group avec plusieurs réponses, mais rien n'a aidé. Pour résumer rapidement, voici mon fichier clojure:Problème de compilation dans Clojure

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

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

Fondamentalement, il est le fichier exemple fourni dans le Clojure documentation.

Je l'ai placé ce fichier appropiately dans clojure/src/test/test.clj, et devrait être en mesure de compiler avec (compile 'test.test), mais je continue à obtenir l'erreur:

java.io.IOException: The system cannot find the path specified (test.clj:1)
qui me porte à croire qu'il est un problème de classpath. J'ai essayé d'exécuter Clojure avec toutes les commandes standard données dans le Clojure documenation ainsi que la dernière suggestion du fil java -classpath .;src;classes;clojure.jar clojure.main.

Si elle aide, mon système de fichiers ressemble à ceci:

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

post-scriptum Je cours sur Vista Ultimate donc il peut peut-être être un problème d'autorisations, mais j'ai vérifié les autorisations et ne pouvais pas trouver quelque chose de mal avec eux.

Répondre

9

Sortie de la console pour la compilation test.clj sous 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=> 

Les fichiers de classe générés sont dans le répertoire des classes.

Notez également qu'il vous manque une parenthèse droite dans votre principal. Version corrigée:

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

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

Excelent! Merci beaucoup, ça fonctionne comme un charme! De plus, je vais éditer la question parce que je suis juste coupé du copier/coller que j'ai fait. – Mike

+0

HI Je rencontre le même problème. Quel pourrait être le problème? J'ai essayé votre solution: C: \ clojure> java -cp clojure-1.0.0.jar;. \ Src;. \ Classes clojure.lang.Repl utilisateur => (compile 'test.test) java.io .IOException: Le système ne peut pas trouver le chemin spécifié (test.clj: 1) – unj2

+1

Cela signifie que vous n'avez pas les classes/répertoire dans votre CLASSPATH. –

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