所有版本的Clojure罐子都报告为Clojure-1.7.0-RC1,无论实际版本如何

时间:2017-07-10 04:04:50

标签: java clojure

当我从Maven Central或官方网站下载Clojure(1.8.0或任何其他版本)的副本时,它将声称是版本1.7.0-RC1

例如:

$ java -jar clojure-1.8.0.jar Clojure 1.7.0-RC1 user=>

事实上,这似乎也是运行的版本。由于在1.8.0中添加的功能(特别是string/starts-with?)在repl中不可用(导入后)。

如果在单独的笔记本电脑上下载了相同的文件副本(由shasum验证),则会运行正确的版本。

我已对多个版本进行了验证,包括1.8.01.9.0-alpha171.5.0-RC2。所有这些都报告为1.7.0-RC1

其他信息:

$ java -version Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

使用macOS版本10.12.3

1 个答案:

答案 0 :(得分:3)

如果您已将较旧的.jar安装为"Java Extension" on macOS,则Clojure Clojure 1.7.0-RC1的另一个(较旧)版本可能会加载并覆盖在命令行(或类路径)上指定的版本。实际上,您报告的行为是将1.7.0 .jar放入/Library/Java/Extensions/~/Library/Java/Extensions/(位于您的主目录下)。

一个简单的解决方案是从Extensions文件夹中删除jar文件。

Java Development Guide for Mac实际上警告使用Extensions目录的危险,因为它可能导致此类问题:

  

尝试在应用程序中包含所有依赖库,而不是依赖Java Extensions目录,因为它的内容是无版本的,不能容纳同一个库的多个版本。