请在 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 来做到这一点。

太棒了!谢谢,Alex。
0

"Clojure"在这里是 overloaded(我甚至不确定你问的是哪个)——这里有 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 版本。

由于对具体该做什么的困惑,我还没有决定对此采取什么行动。 :)

我想我能通过说 Clojure 工具可能运行两个进程来进一步混淆——第一个是计算类路径,这将使用与工具前缀版本匹配的 Clojure 版本,第二个是您要运行的任何程序,这是您自己选择的。
明白了。我特别想到的是报告Clojure的版本(例如,1.10.2.774),而不是特别指的`clojure`命令行工具,尽管我认为这两个功能(至少是半相关的)是连在一起的。我猜测我所要求的是一种尽可能简单地回答“我运行的是什么?”的东西。是的,我意识到我可以执行`cli -M -e "*clojure-version*"`,但这太冗长了。似乎命令行工具应该只有一个`--version`选项。
您也可以通过系统属性获取JVM版本


Java 15 Clojure 1.10.2

评估(System/getProperties)将返回一个包含关于程序运行环境的各种有趣信息的哈希表。
我想我可以进一步混淆这个问题,我说Clojure工具可能运行两个进程——第一个用于计算类路径,该路径将使用与工具前缀版本匹配的Clojure版本,第二个是你在运行的那个程序,无论你指定使用什么。

OK,好主意。
@sean,是的,我知道所有的信息都存在,我并不是说没有版本信息可用。所有信息都存在,我只是在寻找一些方便输出的东西,而不是冗长的咒语。
"我特意在想报告Clojure版本(例如,1.10.2.774),而不是`clojure`命令行工具" -- 1.10.2.774 是 CLI 的版本,而不是 Clojure。

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

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

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

这有帮助吗?还是更使人困惑?
by
Dave Roberts 写道:"我特意在想报告Clojure版本(例如,1.10.2.774),而不是`clojure`命令行工具,尽管我认为这两个玩意儿(至少是半)是关联的。"

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