有没有办法强制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一起运行而不是卸载其他所有内容?
答案 0 :(得分:0)
CIDER
(或cider-jack-in
更具体)使用lein
启动REPL(使用lein repl
命令)。我不确定Windows cmd.exe
是怎样的,但我假设您没有将LEIN_JAVA_CMD
设置为全局env变量,这就是为什么它不会影响cmd.exe
shell Emacs旋转的原因lein repl
。