2010-06-04 5 views
5

Ich kann keinen Weg finden, die Clojure REPL mit der mitgelieferten contrib-Bibliothek zu starten. Wenn ich die Dokumentation richtig verstanden habe, sollte dieser Befehl es tun:Wie installiert man Clojure-Contrib auf Windows?

C:\clojure-1.1.0>"%ProgramFiles%\Java\jre6\bin\java.exe" -cp clojure.jar:clojure 
-contrib.jar clojure.main 
Exception in thread "main" java.lang.NoClassDefFoundError: clojure/main 
Caused by: java.lang.ClassNotFoundException: clojure.main 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
Could not find the main class: clojure.main. Program will exit. 

Aber wie Sie sehen können, schlägt es fehl. Ich habe die clojure-contrib.jar in den Ordner C:\clojure-1.1.0 kopiert.

Kann mir jemand helfen, es richtig zu machen?

aktualisieren
Dank Michals Post bemerkte ich, dass mein Fehler einen Doppelpunkt wurde mit dem ich ein Semikolon verwenden musste. Dies funktioniert:

C:\clojure-1.1.0>"%ProgramFiles%\Java\jre6\bin\java.exe" -cp clojure.jar;clojure-contrib.jar clojure.main 
Clojure 1.1.0 
user=> 

Antwort

7

(Antwort die tatsächliche Lösung explizit machen aktualisiert, während sie etwas in der ursprünglichen versteckt war ...)

Der Classpath String auf Windows verwendet ; als Separator. Z.B.

java.exe -cp "C:\clojure-1.1.0\clojure.jar;C:\clojure-1.1.0\clojure-contrib.jar" clojure.main 

Alternativ können Sie einen Platzhalter verwenden, um alle Gläser im angegebenen Verzeichnis im Classpath enthalten (das ist ein JDK 1.6 hinaus würde nicht mit 1.5 arbeiten):

java.exe -cp "C:\clojure-1.1.0\*" clojure.main 

(I denke mit doppelten Anführungszeichen hier ist ok in Windows, kann nicht überprüfen, obwohl ...)

+0

Vielen Dank! Es sind nicht wirklich die vollständigen Pfade, ich musste einfach ein Semikolon anstelle eines Doppelpunkts als Trennzeichen für die JAR-Dateien verwenden! Aarg .. – StackedCrooked

+0

Hah! Gut, dass Sie es bemerkt haben - ich habe den Unterschied in den Separatoren bemerkt und sogar die Dokumente überprüft, dann aus irgendeinem unerfindlichen Grund versäumt, es explizit in der Antwort zu erwähnen. Ganz zu schweigen davon, dass ich auch die Aufforderung "C: \ clojure-1.1.0>" in der Frage nicht bemerkt habe ... Alles gut, das endet gut, denke ich. :-) Ich habe jetzt eine Änderung für zukünftige Leser vorgenommen. –

Verwandte Themen