我是clojure的絕對初學者。我有clojure1.6和lein(我使用Ubuntu 15.04)。我如何運行我使用終端創建的clojure文件?有沒有像這樣的命令clojure file.clj
?我感謝您的幫助!如何運行Clojure文件?
8
A
回答
5
你應該閱讀Leiningen readme和tutorial,也許按照你最喜歡的編輯器的一些簡單的教程。
8
$ lein run -m my.namespace # run the -main function of a namespace
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的生活中比使用-m
和load-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!
相關問題
- 1. Clojure的運行如Java文件
- 2. 如何執行Clojure文件?
- 3. 如何REPL運行Clojure的程序
- 4. 如何在Windows上運行Clojure測試?
- 5. 如何從終端運行clojure程序
- 6. 如何在Mac OS X上運行clojure?
- 7. 以下clojure代碼如何運行?
- 8. 如何在Eclipse中運行Clojure測試?
- 9. 如何檢測Clojure運行時環境?
- 10. 如何印刷clojure文件?
- 11. 運行Clojure程序
- 12. 如何運行JShell文件?
- 13. 如何運行Node.js文件?
- 14. 如何運行JSP文件?
- 15. 如何運行ruby文件?
- 16. 如何運行.awk文件?
- 17. 如何運行.lua文件?
- 18. 如何運行XSLT文件?
- 19. 如何運行.sqlite文件?
- 20. 如何運行.xcworkspace文件
- 21. 如何運行.exe文件?
- 22. 如何運行index.jade文件?
- 23. 如何運行Java文件?
- 24. Maven Clojure插件未運行測試
- 25. Ctrl-F11運行當前文件。我如何運行「主」文件?
- 26. 如何將一個clojure源文件連接到Emacs上正在運行的clojure repl?
- 27. Clojure:無法運行Sparkling
- 28. Clojure-koans運行錯誤:
- 29. 在clojure中運行D3.js
- 30. 讓Clojure運行(lein repl)
這可能也有幫助:下面是如何使用'java'運行一個簡單的clojure程序,不需要'lein':https://stackoverflow.com/questions/30151387/cant-see-printed-values-if-launch -script-用的Java/30167378#30167378 – lispHK01