DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

Compile and Run Clojure Codes Manually


创建一个简单的Clojure命令行应用,编译为class文件,运行class文件:

$ mkdir hello && cd hello
$ mkdir -p src/com/hello_world classes
$ cat << EOF > src/com/hello_world/core.clj
(ns com.hello-world.core
  (:gen-class))

(defn -main
  [greetee]
  (println (str "Hello " greetee "!")))
EOF
$ java -cp $HOME/.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar:.:./src:./classes clojure.main
user=> (compile 'com.hello-world.core)
user=> ^d
$ java -cp $HOME/.m2/repository/org/clojure/clojure/1.8.0/clojure-1.8.0.jar:.:./classes 'com.hello_world.core' "chao"
Hello chao!

注意什么时候用-,什么时候用_,为了避免麻烦,最好不要在包名里加-和_。

注意:

  • 编译时classpath里面必须有classes文件夹,用其他名字会导致错误,原因不明;

  • Clojure的namespace相当于Java的package,必须与路径对应;

  • 要编译一个Clojure类,必须在namespace里面加(:gen-class);



Published

Mar 1, 2017

Last Updated

Mar 1, 2017

Category

Tech

Tags

  • clojure 26
  • compile 6
  • java 106

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor