如何在IntellijIdea中运行Leiningen?

3
我安装了带有La Clojure和Leiningen插件的IntelliJ Idea 10.5.2。按照GitHub页面上的说明安装了Leiningen(因为我在Windows 7上运行,所以用了.bat文件进行自我安装;我还将.bat文件的路径放入了PATH变量中)。现在,运行任何Leiningen命令都会产生以下错误:

E:\leiningen\lein.bat deps Error opening registry key 'Software\JavaSoft\Java Runtime Environment' Error: could not find java.dll Error: could not find Java SE Runtime Environment。

问题是,“这里出了什么问题?”我尝试按照正确的方式安装Leiningen。但仍然无法完全工作。如果我在Windows命令提示符中进入我的项目所在目录,则可以运行lein命令。这样可以运行。但我想从IntelliJ的插件中运行它。此外,我还注意到另一个奇怪的事情,即如果我启动Total Commander并转到我的项目,然后从那里启动命令提示符,然后尝试运行任何lein命令,我会得到相同的错误。我猜可能是classpath出了问题,但是怎么解决呢?
1个回答

3
这不是与类路径有关的问题,而是与通过IntelliJ Leiningen插件启动Leiningen无法找到正确的Java版本有关的问题。
由于它取决于启动Lein的主机进程是否可以启动JDK,因此在Win 7 x64下可能存在“位数”差异。如果您只安装了一种32或64位JDK,则某些程序会尝试仅启动其中一个,因为另一个被“屏蔽”掉了。
这是由Win 7内部通过x86或x64注册表或默认程序文件目录完成的。如果主机进程为32或64位,则只能找到相同“位数”的程序或dll。对于程序文件,这是\ Program Files \(对于x64)和\ Program Files(x86)\(对于x86),对于注册表则是\ HKEY_LOCAL_MACHINE \ SOFTWARE \(对于x64)和\ HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \(对于x86)。
最简单的方法是安装其他(x86或x64)版本的JDK和JRE。这将在注册表和程序文件目录的其他部分中注册该版本。

模块设置中存在有效的 JDK 引用,所以……我不知道。还有一件事,为什么如果我从总指挥启动命令提示符,我会遇到同样的问题,而在运行命令时启动它可以运行 lein 任务呢? - Belun
哦,我的朋友,你说得对。我也安装了32位版本的JDK,现在从IntelliJ IDEA安装Leiningen可以正常工作(使用Total Commander启动的cmd中运行lein同样有效)。非常感谢。 - Belun
今天在Windows 7和Intellij 12启动SBT(Scala)时,我遇到了类似的错误信息。后来发现这是因为我只安装了x64 JVM。安装32位JVM解决了这个问题。 - Ben Hutchison

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接