CIDER将在Windows上运行哪个JVM版本

时间:2014-04-06 13:54:00

标签: emacs clojure leiningen cider

有没有办法强制CIDER使用特定版本的JVM?

我一直在更新一些项目以使用最近发布的Java 8,包括一些依赖于Java互操作的Clojure项目。但是,我在开发过程中遇到了一些使用某些工具的问题。其中之一是使用Emacs的CIDER。我似乎无法使用Java 8 JVM。

我的系统上安装了JDK版本1.7.0_17,_21,_25,_40,_45,_51和1.8.0以进行兼容性测试。

当我启动CIDER REPL并检查Java版本时,我看到了:

; CIDER 0.6.0alpha (package: 20140322.332) (Clojure 1.6.0, nREPL 0.2.3)
eight-queens.core> (System/getProperty "java.version")
"1.7.0_25"

在更新到CIDER之前,我在使用nREPL时看到了类似的结果。在Light Table中使用REPL时,我看到类似的结果。使用从命令行启动的Clojure REPL,事情按预期工作。

我的Java相关环境变量包括:

路径包含:C:\Program Files\Java\jdk1.8.0\bin\

JAVA_HOME:C:\Program Files\Java\jdk1.8.0

LEIN_JAVA_CMD:C:\Program Files\Java\jdk1.8.0\bin\java

(在Emacs中从命令shell启动的Leiningen在添加LEIN_JAVA_CMD环境变量之前产生了类似的问题。奇怪的是,添加环境变量改变了CIDER使用的JVM的版本。在添加环境变量之前,它报告使用版本1.7 .0_40。)

我没有找到任何与Windows注册表相关的内容。

是否有某种方法可以强制CIDER与特定的JVM一起运行而不是卸载其他所有内容?

1 个答案:

答案 0 :(得分:0)

CIDER(或cider-jack-in更具体)使用lein启动REPL(使用lein repl命令)。我不确定Windows cmd.exe是怎样的,但我假设您没有将LEIN_JAVA_CMD设置为全局env变量,这就是为什么它不会影响cmd.exe shell Emacs旋转的原因lein repl