经过三天的挫折,我必须寻求帮助。作为 clojure 的新手,我想使用改编自 clojure.org 的 AOT 页面的 (compile 'examples.hello) 从 REPL 编译这个脚本:
(ns examples.hello
(:gen-class))
(defn -main
[greetee]
(println (str "Hello " greetee "!")))
我将 JEdit 与 clojure 控制台插件一起用作我的编辑器,并用于严肃的项目 leiningen。
我在 $HOME 的目录结构是:clojure-1.3.0 (编辑以节省空间)
|-- classes
|-- clojure-1.3.0.jar
|-- clojure-1.3.0-slim.jar
|-- src
| |-- examples
| | |-- hello.clj
| | `-- hello.clj~
| |-- jvm
|
错误消息是:
FileNotFoundException Could not locate examples/hello__init.class or examples/hello.clj on classpath: clojure.lang.RT.load (RT.java:430)
一些问题:
a) 如果我正在编译,为什么编译函数要查找我正在尝试创建的类文件?
b)使编译功能起作用的“正确”步骤是什么?c)在我对这个问题的互联网搜索中,有很多提到“类路径”或“你的类路径”;假设类路径引用 clojure.jar 等并且脚本正在处理而不是 java $CLASSPATH 是否正确,这自 java 1.5 以来一直是不必要的?