我正在尝试将clojure源代码编译到类文件中,并仅使用命令行运行它,不使用lein,也不使用(可能)回复。
我有core.clj
src/hello
目录
.
âââ src
âââ hello
âââ core.clj
这是源代码。
(ns hello.core)
(defn -main
"This should be pretty simple."
[]
(println "Hello, World!"))
使用
(compile)
在REPL中。
从此网站中的提示(
http://clojure.org/compilation
),我试图从REPL获取类文件。
我开始REPL时
lein repl
在src目录中,然后尝试编译以获得错误。
user=> (compile 'hello.core)
CompilerException java.io.IOException: No such file or directory, compiling:(hello/core.clj:1:1)
命令行
来自此帖子
simple tool for compiling Clojure .clj into .class / .jar
和
How to compile file in clojure
,我似乎可以在REPL之外编译clojure源代码。
我试过了
.
以获得错误。
> java -cp .:<PATH>/clojure-1.6.0.jar -Dclojure.compile.path=build clojure.lang.Compile src/hello/core.clj
Compiling src/hello/core.clj to build
Exception in thread "main" java.io.FileNotFoundException: Could not locate
hello/core/clj__init.class or hello/core/clj.clj on classpath:
at clojure.lang.RT.load(RT.java:443)
at clojure.lang.RT.load(RT.java:411)
...
下面是我的问题:
-
如何编译clojure源代码以获得带有/不带有REPL的类?
-
如何用Java运行类?足够执行吗
java -cp .:CLOJURE_JAR main
?