2

我安装了带有 La Clojure 和 Leiningen 插件的 IntelliJ Idea 10.5.2。之后安装了 Leiningen,如 GitHub 页面中所述(拿了蝙蝠,因为我在 Windows 7 上运行,并进行了自我安装;我还将蝙蝠的路径放在 PATH 变量中)

现在,在 Leiningen 中运行任何东西都会产生这个错误:

E:\leiningen\lein.bat deps 打开注册表项“Software\JavaSoft\Java Runtime Environment”时出错 错误:找不到 java.dll 错误:找不到 Java SE 运行时环境。

所以,问题是“这里出了什么问题?” 我尝试按照正确方式安装 Leiningen 的所有步骤。仍然不能完全工作。

如果我从 Windows 命令提示符转到我的项目所在的位置,那么我可以运行lein命令。它就是这样工作的。但我想从 IntelliJ 的插件中运行。

另外,我注意到的另一件奇怪的事情是,如果我启动一个 Total Commander,转到我的项目并从那里启动一个命令提示符,然后尝试运行任何lein命令,我会得到同样的错误。

我的猜测是类路径可能有问题,但是什么?以及如何解决?

4

1 回答 1

3

这不是类路径的问题,而是通过 IntelliJ Leiningen 插件启动 Leiningen 时无法找到正确的 Java 版本的问题。

由于它是否可以启动 JDK 取决于启动 Lein 的主机进程,因此在 Win 7 x64 下它可能是“位”的差异。如果您只安装了一个 32 位或 64 位 JDK,有些程序会尝试只启动一个,因为另一个被“屏蔽”掉了。

这是由 Win 7 通过注册表的 x86 或 x64 部分或默认程序文件目录在内部完成的。如果主机进程是 32 位或 64 位,则它只能从相同的“位”中找到程序或 dll。对于程序文件,对于 x64 是 \Program Files\,对于 x86 是 \Program Files (x86)\,对于 x64 是注册表 \HKEY_LOCAL_MACHINE\SOFTWARE\,对于 x86 是 \HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\。

最容易找到的方法是安装其他(x86 或 x64)版本的 JDK 和 JRE。这将在注册表的另一部分和程序文件目录中注册该版本。

于 2011-09-15T11:39:03.247 回答