1

有没有办法强制 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

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

我没有在 Windows 注册表中找到任何似乎相关的内容。

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

4

1 回答 1

1

CIDER(或cider-jack-in更具体地说)用于lein启动 REPL(使用lein repl命令)。我不确定 Windows 如何cmd.exe,但我假设您没有设置LEIN_JAVA_CMD为全局环境变量,这就是为什么它不会影响cmd.exeshell Emacs 为lein repl.

于 2014-04-07T06:30:53.243 回答