java-Clojure jars的所有版本均报告为Clojure-1.7.0-RC1,与实际版本无关

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

例如:

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

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

在另一台笔记本电脑上下载文件的相同副本(由shasum验证)时,将运行正确的版本.

我已经使用多个版本(包括1.8.0、1.9.0-alpha17和1.5.0-RC2)进行了验证.他们都报告为1.7.0-RC1.

附加信息:

$java-版本
Java(TM)SE运行时环境(内部版本1.8.0_60-b27)
Java HotSpot(TM)64位服务器VM(内部版本25.60-b23,混合模式)

使用macOS版本10.12.3.

解决方法:

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

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

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

Try to include all of your dependent libraries in your application rather than relying on the Java Extensions directory, because its contents are unversioned and cannot accommodate for multiple versions of the same library.

上一篇:maven--使用Idea操作maven项目--配置/识别maven项目/archetype


下一篇:创建第一个Web项目