[英]How to run a Clojure File?
我是clojure的絕對初學者。 我有clojure1.6和lein(我使用ubuntu 15.04)。 如何運行我使用終端創建的clojure文件? 有沒有像clojure file.clj
這樣的命令? 我感謝您的幫助!
簡單的答案:
如果'clojure'是將運行Clojure的腳本或別名(通過使用適當的命令行參數運行java),並且“foo.clj”是您的Clojure源文件的名稱,那么您只需輸入
clojure foo.clj
如果這不起作用,那是因為你的路徑中沒有這樣的腳本,但是你可以創建一個腳本,其內容如下所示:
#!/bin/sh
java -cp /usr/lib/clojure-1.6.0.jar clojure.main "$@" -r
您需要確定Clojure jar文件的位置,並在-cp
之后替換該塊。 使用Leiningen,你可能在〜/ .m2下有這個文件的某個版本。
如果你啟動Clojure並獲得REPL提示,那么你可以輸入:
(load-file "foo.clj")
要么
(load-file "<path to foo.clj>/foo.clj")
好的答案:
見Shlomi和Daniel Compton的答案。
當您開始使用Clojure時,關於如何設置目錄結構和文件名以便輕松使用Leiningen和Clojure,可能會有一些學習曲線。 (如果你對Java有所了解,這有點容易。)但是,一旦你熟悉了Leiningen的project.clj文件以及如何設置源文件和命名空間(在你了解命名空間之后!),在傳統方式將使您在Clojure中的生活比使用-m
和load-file
更容易。 (Clojure非常適合開發小型或大型項目,而不是運行一次性腳本.Clojure需要很長時間才能用作腳本語言,而Leiningen需要更長的時間。)
$ lein run -m my.namespace # run the -main function of a namespace
您應該閱讀Leiningen自述文件和教程 ,或者按照您喜歡的編輯器的一些簡單教程。
首先,Clojure程序員傾向於比運行獨立文件更頻繁地使用REPL。 但是,如果你想運行的文件,我建議啟動快速黑客。
Unix的安裝說明在Github Boot項目頁面上 。 安裝Boot后,創建一個名為main.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!
java -cp clojure-1.7.0.jar clojure.main -i file.clj
假設安裝了java,並且clojure-1.7.0.jar
文件和file.clj
都在當前目錄中
如果您最終需要其他jar文件用於庫等,那么這最終會變得相當壓倒性。 此時您可能想要研究boot,maven或leiningen。 大多數人似乎都在使用leiningen,但它讓我的頭發着火了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.