我已经在Linux Mint机器上安装了Geany,并编写了一些简单的代码。只是一个很小的世界,即可开始使用该语言。
现在,我想运行它并查看其输出。
如何运行此代码?我没有使用IDE或预先打包的东西,而只是使用简单的文本编辑器Geany。
我应该运行什么命令?
最佳答案
FWIW,我在此将问题解释为专门询问如何运行单个文件(如脚本),而不是作为已编译项目的一部分。
但是,显然,要运行一个文件的方式和原因与要构建一个完整项目的方式之间存在某种关系,因此我也将其权衡一下。
最佳选择:clj
工具
文件在这里:
https://clojure.org/guides/deps_and_cli
这是Clojure项目的正式组成部分,这本身就是走这条路线的一个很好的理由。但是,与此处的其他解决方案相比,它具有两个优点:
deps.edn
~/.clojure/deps.edn
似乎比~/.lein/profiles.clj
clj
不会在烦人的src文件中阻塞,就像lein repl
会只是
clj your-code-file.clj
或者如果您有依赖关系
clj -Sdeps '{:deps {clj-time {:mvn/version "0.14.2"}}} your-code-file.clj
在脚本中也可以很好地工作!
#!clj -deps '{:deps {clj-time {:mvn/version "0.14.2"}}}
(ns my-crazy-script!
(:require ...))
...
我建议使用homebrew进行安装,现在可以在Mac和Linux上使用。如果您使用Windows,建议您使用WSL + brew。
我看到的
lein
(见下文)工具优于clj
的一个优点是,到了这一点,lein
处理了更多构建和打包代码库的过程。但是,还有其他处理方式(请参见pack,uberdeps或cambada),并且上述
clj
的优势胜过恕我直言。使用
lein
和lein-exec
如果您更喜欢
lein
工具,或者已经拥有一个~/.lein/profiles.clj
文件,并且不想投资学习clj
/ deps.edn
,则可以考虑查看 lein-exec
。如果您已经设置了带有依赖项的
project.clj
,那么您当然可以运行lein run -m <yer-namespace>[/<yer-main-fn>]
。如上所述,
lein
优于clj
的一个优点是它是一个完整的构建工具,并且可以使用lein jar
或lein uberjar
为您制作jar / uberjars,并进行部署等。对于ClojureScript
我建议http://planck-repl.org/。现在,它支持(引导)ClojureScript脚本的快速启动,而无需启动JVM或Clojure。对于大多数脚本任务,快速执行很重要,因此,当您不需要特定于JVM的任何东西时,这是我的第一建议。
对于较大的项目,而不仅仅是repl / cli样式的使用,您可能希望查看Shadlow-CLJS,因为它易于合并 Vanilla JS项目。
与FWIW一样,Shadow可以很好地与deps和lein集成在一起,并且具有内置的原始代码重载功能,例如figwheel。
drip
可加快启动时间注意:多年来我一直没有尝试使用此工具,因此不知道它是否仍然有效或维护得如何。
Drip是一个简洁的小工具,它为您提供了可以启动的预引导JVM镜像。这对于减少JVM应用程序的启动时间可能非常有用。 Clojure可能需要一段时间才能自我引导,因此滴水是帮助加快该过程的好工具。当您编写小的脚本时,尤其是这种情况,通常期望它们可以快速运行。如果您使用的是leiningen,请查看lein-drip插件。
用
java
当然,您可以按照另一个答案的建议使用
java -cp clojure.jar clojure.main file.clj
但是您不会经常在野外看到它,因为必须找到
clojure.jar
的路径并手动为依赖项构造类路径很麻烦。但是,要知道,每个人都有。