I'm feeling slightly silly here, but I can't get Clojure Hello World to compile.
Directory structure:
hello-world/
clojure-1.1.0.jar
build/
classes/
src/
test/
hello.clj
hello.clj:
(ns test.hello
(:gen-class))
(defn -main [& args]
(println "Hello" (nth args 0)))
Interaction:
$ cd hello-world
[hello-world]$ java -cp ./clojure-1.1.0.jar:./build/classes:./src clojure.main
Clojure 1.1.0
user=> (require 'test.hello)
nil
user=> (test.hello/-main "there")
Hello there
nil
user=> (compile 'test.hello)
java.io.IOException: No such file or directory (hello.clj:2)
user=> *compile-path*
"classes"
user=> (doseq [p (.split (System/getProperty "java.class.path") ":")] (println p))
./clojure-1.1.0.jar
./build/classes
./src
nil
So I can load and call the file from the REPL, but it doesn't compile.
According to clojure.org, compilation needs
I found this post from a year back, as far as I can tell I'm doing exactly the same, but it doesn't work.
What am I missing?
System: OS X 10.6, Java 1.6.0, Clojure 1.1
Why you don't use Leiningen? It's much easier to use it, than compile code manually. You can use my article about it as introduction...
I've used it briefly to download dependencies for external projects, but so far not looked into how to use it as a build tool. Thanks for the link, I'll check it out.
Nice overview, thanks for the article. Probably about time I start using a build tool anyway :)
Leiningen doesn't help me: $ lein test Couldn't find project.clj, which is needed for test
@mcandre read the linked-to article, it explains the process. A sample project can be downloaded (or git-cloned) from github.com/alexott/lein-simple-project/