我在这里感觉有点傻,但我无法让Clojure Hello编译。
目录结构:
hello-world/
clojure-1.1.0.jar
build/
classes/
src/
test/
hello.cljhello.clj:
(ns test.hello
(:gen-class))
(defn -main [& args]
(println "Hello" (nth args 0)))互动:
$ 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所以我可以从REPL加载和调用文件,但是它不编译。
根据clojure.org的说法,编译需要
我找到了一年前的这篇文章,据我所知,我也在做同样的事情,但是它不起作用。
我遗漏了什么?
系统: OS X 10.6、Java 1.6.0、Clojure 1.1
发布于 2010-06-27 10:50:10
你为什么不使用莱宁根?使用它比手工编译代码容易得多。你可以用我的文章作为介绍.
发布于 2010-06-26 11:27:20
明白了,还有第四条要求:
(System/getProperty "user.dir")因此,这是可行的:
user=> (set! *compile-path* "build/classes")
"build/classes"
user=> (compile 'test.hello)
test.hello发布于 2020-02-08 10:32:49
要运行clojure文件,请执行
clojure filename.cljhttps://stackoverflow.com/questions/3123662
复制相似问题