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"在这里是被过度加载的(而且我甚至不确定你在问什么)——这里既有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版本

$ 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 以及“master”(现在的 Clojure 1.11)的所有版本都设置了别名。

这能帮到你吗?或者它让你更加困惑了?
by
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。
...