Clojure:如何在Leiningen/Lighttable环境中显式选择JVM



在我的Windows7(64位)环境中,我有相当多的JVM可用:

C:Program Files (x86)Javaj2re1.4.2_12binclientjvm.dll
C:Program Files (x86)Javajre6binclientjvm.dll
D:programsJavajdk1.7.0_45jrebinserverjvm.dll
D:programsJavajre7binserverjvm.dll

目前,对于Lighttable/Leingen(我不知道是哪个做出了选择,以及如何选择),它使用

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

但我真的很想试试

D: \programs\Java\jdk1.7.0_45\jre\bin\server\jvm.dll

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

java版本

我得到了以下信息:

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)

这似乎就是我想要在Lighttable/Leinengen内部拥有的东西。

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

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

非常感谢!

我在中发现了一个Leiningen配置文件

$HOME/.lein/profiles.clj

对Windows上的我来说,$HOME就是D:Userscarl。更一般地说,如果您使用CMD启动shell,它是Windows(通常)将您转储到的目录。其中包含:

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

我能够将其更改为良好效果。

首先将JDK的bin目录放在您的路径中。这是最可靠的方法。

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

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

要在莱宁根测试这一点,请启动一个repl,并对此进行评估。

(println (System/getProperty "java.version"))

例如

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"

根据我的经验,Leiningen一直使用它在路径中找到的java版本。不过没有使用轻型桌子的经验。

对于Leiningen,您可以编辑lein.bat以精确指向您想要的Java SDK版本。我不知道LightTable是否也是如此。

或者您可以设置一个全局JAVA_HOME。这真的可以在谷歌上搜索(或DuckDuckGo)。

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

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

故事的寓意是:莱宁根需要用新安装的JDK重新配置,该JDK具有莱宁根win安装程序的配置功能。

手动配置leiningen是可能的,但我还没有找到方法。我试着用java命令选项通过project.clj手动配置,但没有成功。

最新更新