2014-10-20 47 views
2

在我的Windows 7(64位)的環境中,我可以好幾個JVM:的Clojure:如何明確選擇JVM與Leiningen /環境Lighttable

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 

目前,隨着Lighttable/Leiningen(我不知道這使得選擇,以及如何),它使用

C:\ Program Files文件(x86)的\的Java \ j2re1.4.2_12 \ BIN \客戶\ jvm.dll的

但我真的想嘗試

d:\程序\的Java \ jdk1.7.0_45 \ jre的\ BIN \服務器\ 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內部。

你能告訴我如何做出明確的選擇/配置?

我試過谷歌,但找不到一些線索。

非常感謝!

回答

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,但我還沒找到一種方法來做。 我試圖手動配置通過我的project.clj與java命令選項,它沒有工作。

3

對於Leiningen,您可以編輯lein.bat以準確指向您所需的Java SDK版本。我不知道是否同樣適用於LightTable。您可以設置全球JAVA_HOME。這真的是Googleable(或DuckDuckGo-able)。

+0

按照你的建議,我試着看看lein.bat,它是相當成功的。我擔心我可能會弄得更糟,所以放棄了。 Settnig JAVA_HOME和重新啓動也不會產生預期的效果。感謝您提供快速幫助! – 2014-10-21 01:23:32

3

首先將JDK的bin目錄放入路徑中。這是最可靠的方法。

更多詳細信息。 Windows中,您可以使用where命令查看可執行文件的版本。它可以是where javawhere java.exe您也可以通過鍵入path從命令提示符查看您的路徑。如果你從命令行啓動了某些東西,而且它沒有采取奇怪的方法來尋找JVM,它應該在你的路徑中找到第一個,它應該與運行where命令的結果一致。

如果where命令提供了一些您不期望的內容,請在正在提交的條目之前將正確的目錄添加到路徑中,或重新排列路徑,以便它首先出現。

要測試這個在leiningen,開始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版本。雖然沒有輕桌子的經驗。

+0

感謝您的提示。它可能適用於其他情況,但所需的JDK bin已經在我的機器的PATH中。 – 2014-10-21 01:22:00

+0

之前有沒有其他的? – Bill 2014-10-22 14:26:40

3

我發現了一個Leiningen的個人資料

$HOME/.lein/profiles.clj

對我來說,在Windows上,$HOMED:\Users\carl。更一般地說,如果您使用CMD啓動外殼程序,則Windows將(通常)將該目錄轉儲到該目錄中。 此處包含:

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

    ] 
    } 
} 

...哪個能變化,好了。