2015-05-25 74 views
8

我是clojure的絕對初學者。我有clojure1.6和lein(我使用Ubuntu 15.04)。我如何運行我使用終端創建的clojure文件?有沒有像這樣的命令clojure file.clj?我感謝您的幫助!如何運行Clojure文件?

+0

這可能也有幫助:下面是如何使用'java'運行一個簡單的clojure程序,不需要'lein':https://stackoverflow.com/questions/30151387/cant-see-printed-values-if-launch -script-用的Java/30167378#30167378 – lispHK01

回答

9

答案很簡單:

如果 'Clojure的' 是一個腳本或將運行的Clojure(通過運行相應的命令行參數的Java)的別名,「富.clj」是你的Clojure源文件名,那麼你可以只輸入

clojure foo.clj 

如果這不起作用,那是因爲沒有這樣的腳本是在你的路徑,但你可以做一個腳本,其內容是這個樣子:

#!/bin/sh 
java -cp /usr/lib/clojure-1.6.0.jar clojure.main "[email protected]" -r 

你需要找出其中Clojure的JAR文件,並替換件之後-cp。使用Leiningen,你可能在〜/ .m2下有這個文件的一些版本。

如果你啓動的Clojure,並得到一個REPL提示,那麼你可以輸入:

(load-file "foo.clj") 

(load-file "<path to foo.clj>/foo.clj") 

好答案:

見的Shlomi和丹尼爾康普頓的答案。

當你開始使用Clojure時,可以通過一點關於如何設置目錄結構和文件名的學習曲線來與Leiningen和Clojure輕鬆協作。 (如果你對Java很熟悉,這會容易一些。)但是,一旦熟悉了Leiningen的project.clj文件以及如何設置源文件和命名空間(在瞭解了命名空間之後!)之後,傳統的方式會讓你在Clojure的生活中比使用-mload-file更容易。 (Clojure更適合開發小型或大型項目,而不是運行一次性腳本,Clojure花費太長時間才能用作腳本語言,而Leiningen則需要更長的時間。)

3

First總的來說,Clojure程序員傾向於比運行獨立文件更頻繁地使用REPL。但是如果你想運行文件,我建議Boot快速黑客。

Unix的安裝說明在Github Boot project page上。一旦你已經安裝了Boot,創建​​一個名爲main.boot包含文件:

#!/usr/bin/env boot 

(defn -main [& args] 
    (println "Hello world!") 
    (System/exit 0)) 

然後使其可執行文件並運行它:

$> chmod a+x main.boot 
$> ./main.boot 
Hello world! 

Here's a pretty good introduction to Boot