Clojure:如何在Leiningen/Lighttable环境中明确选择JVM

Yu *_*hen 5 jvm clojure leiningen lighttable

在我的Windows 7(64位)环境中,我有很多可用的JVM:

C:\Program Files (x86)\Java\j2re1.4.2_12\bin\client\jvm.dll
C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll
D:\programs\Java\jdk1.7.0_45\jre\bin\server\jvm.dll
D:\programs\Java\jre7\bin\server\jvm.dll
Run Code Online (Sandbox Code Playgroud)

目前,使用Lighttable/Leiningen(我不知道哪个选择,以及如何选择)

C:\ Program Files(x86)\ Java\j2re1.4.2_12\bin\client\jvm.dll

但我真的很想尝试

d:\程序\的Java\jdk1.7.0_45\jre的\ BIN \服务器\的jvm.dll

当我输入时,更令人费解的是

java -version

我得到以下内容:

D:\yushen>java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
Run Code Online (Sandbox Code Playgroud)

看来这就是我想在Lighttable/Leinengen里面得到的东西.

你能告诉我如何做出明确的选择/配置吗?

我试过谷歌,但找不到一些线索.

非常感谢!

Car*_*icz 7

我发现了Leiningen的个人资料

$HOME/.lein/profiles.clj

对我来说,在Windows上,$HOMED:\Users\carl.更一般地说,如果你使用shell启动shell,它将是Windows(通常)转储你的目录CMD.其中包含:

{:user
  {
  :java-cmd "F:\\JDK8\\bin\\java.exe"
  :plugins [

    ]
   }
}
Run Code Online (Sandbox Code Playgroud)

...我能够改变到良好的效果.


Bil*_*ill 6

首先将 JDK 的 bin 目录放在您的路径中。这是最稳妥的办法。

更多详情。Windows,您可以使用该where命令查看可执行文件的版本。它是where java或者where java.exe你也可以在命令提示符下输入path. 如果您从命令行启动某些东西,并且它没有采取奇怪的措施来找到 JVM,那么它应该在您的路径中找到第一个,它应该与运行 where 命令的结果一致。

如果 where 命令出现了您不期望的内容,请在出现的条目之前将正确的目录添加到您的路径中,或者重新排列您的路径,使其首先出现。

要在 leiningen 中对此进行测试,请启动 repl 并对其进行评估。

(println (System/getProperty "java.version"))
Run Code Online (Sandbox Code Playgroud)

例如

Yoyo-2:Desktop bill$ lein repl
(System/getPnREPL server started on port 61475 on host 127.0.0.1 - nrepl://127.0.0.1:61475
REPL-y 0.3.5, nREPL 0.2.6
Clojure 1.6.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_20-b26
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

ruser=> (System/getProperty "java.version")
"1.8.0_20"
Run Code Online (Sandbox Code Playgroud)

根据我的经验,Leiningen 一直使用它在路径中找到的 java 版本。虽然没有使用光桌的经验。


Yu *_*hen 2

最后,我找到了这个链接: http: //leiningen-win-installer.djpowell.net/

运行安装程序后,它具有重新配置leiningen的功能,使用它,我可以配置我的旧leiningen以使用我想要的JDK:D:\programs\Java\jdk1.7.0_45\bin\java.exe,那么现在 leiningen/lighttable 中的 JVM 实例就是所需的实例。

这个故事的寓意是:leiningen 需要使用新安装的 JDK 以及 leiningen-win-installer 的配置功能进行重新配置。

也许可以手动配置 leiningen,但我还没有找到方法。我尝试使用 java-command 选项通过我的 project.clj 手动配置,但没有成功。