2024年Clojure现状调查中分享你的想法!

欢迎!请参阅关于页面了解更多关于如何使用本站的信息。

+1投票
Clojure
已关闭

Java有一 种从命令行快速查找版本的方法
java -version

对于`cli`和`clojure`命令,有类似的功能吗?如果没有,这些命令如果能够打印Clojure版本和Java版本(最好是两者同时打印),那么用户可以快速确定已经安装和运行的版本会很有帮助。

标记为已关闭:在Clojure CLI 1.10.2.790版中发布

2 条回答

+1投票

被选中
 
最佳答案

Clojure CLI 1.10.2.790 现在有了 -version 和 --version 选项(与Java相同)。

这将报告Clojure CLI版本。它不会报告Java版本 - 使用java来做这个。

by
好!谢谢,Alex。
0
by

"Clojure" 这里是过载的(我甚至不确定你在问哪一种)——这里既有 Clojure 命令行工具,也有你目前使用的 Clojure 语言 jar 版本。它们是独立的,任何工具版本都可以与任何 Clojure 版本一起使用(例如,Clojure 1.10.2.774 工具可以与 Clojure 1.0 或 Clojure 1.9.x 工具使用 Clojure 1.10.2)。

您可以通过 clj -h(第一行)或 clj -Sdescribe 来查看工具版本。

您可以使用 clj -M -e "*clojure-version*" 来查看您当前正在使用的 Clojure 版本。

由于对确切做法的困惑,我尚未决定对此该如何处理。:)

by
我想我在火上再加点混乱吧,比如说 Clojure 工具可能会运行两个进程——第一个用于计算类路径,将使用与工具前缀版本匹配的 Clojure 版本,第二个则是您正在运行的任何程序,是你指定的要使用的任何程序。
by
啊,明白了。我特意想说的是报告Clojure版本(例如,1.10.2.774),而不仅仅是`clojure`命令行工具。尽管我认为这两个功能(至少是半相关)是连接在一起的。我想我需要的是一个尽可能简单地回答“我在运行什么?”的工具。是的,我知道可以通过执行`cli -M -e "*clojure-version*"`来做到这一点,但这太罗嗦了。看起来命令行工具应该有一个`--version`选项。
通过
您也可以通过系统属性获取JVM版本

$ clojure -M -e '(println "Java" (System/getProperty "java.version") "Clojure" (clojure-version))'
Java 15 Clojure 1.10.2

评估(System/getProperties)将返回一个包含关于程序运行环境丰富信息的哈希表。
通过
我想我应该通过说Clojure工具可能会运行两个进程来进一步混乱——第一个是计算类路径的,它将使用与工具前缀版本匹配的Clojure版本,第二个是你运行的任何程序,这取决于你如何指定。

好吧,好的观点。
通过
@sean,是的,我知道所有这些都存在,我并不是说没有版本信息可用。所有信息都在某个地方。我只是想找一个能方便地输出,而不需要冗长的咒语的工具。
通过
"我特意想说的是报告Clojure版本(例如,1.10.2.774),而不仅仅是`clojure`命令行工具" -- 1.10.2.774是CLI版本,而不是Clojure。

clj -h显示CLI版本在第一行(或clojure -h)。

但是Clojure版本是在你的项目deps.edn文件中设置的,或者在用户deps.edn文件中设置,否则默认使用系统deps.edn文件。

clj/clojure命令可以运行任何Clojure(语言)版本 -- 我的用户deps.edn文件中包含了从Clojure 1.0到Clojure 1.10.2的所有别名(以及现在是Clojure 1.11的“master”)。

这有帮助吗?还是更让人困惑?
Dave Roberts 写道:“我具体考虑的是报告Clojure的版本(例如,1.10.2.774),而不是特别指出`clojure`命令行工具,尽管我认为这两个是(至少是半)相关的。”

注意,1.10.2.774 _确实_ 是`clojure`命令行工具的版本号。Clojure语言没有这样的版本号。在JVM上,Clojure语言的版本号为1.9.0、1.10.0、1.10.2等,但不是1.10.2.774。
...