我正在使用 Oracle Java 7 和 JRuby(来自 TorqueBox 2.2.0)在 Windows 8 上工作。 在终端中,JAVA_HOME 环境变量有一些奇怪的行为......
如果我输入“set”,我会得到我所期望的:
JAVA_HOME=C:\Program Files (x86)\Java\jre7
例如,我可以运行bundle exec rspec,它会起作用 然后我运行
set COVERAGE=true
再次运行相同的命令,我会得到
Cannot locate Java installation, specified by JAVA_HOME:
我可以多次输入此内容,但总是相同的结果。但神秘的是我有时可以做类似的事情
jruby -S bundle exec spec
有时会起作用...有时不起作用...
这完全是随机且不可预测的......这真的很痛苦! 有人有什么想法吗?从我的角度来看,它看起来像是一个旧的 Windows bug,因为 Windows 7 上一切都很好
已经测试过:
- 安装 x64 Java 而不是 x86
- 路径末尾有一个尾随/
最佳答案
这可能与路径内的空格有关。您已经正确定义了它,但某些脚本可能会像这样使用它:
%JAVA_HOME%\bin\java ...
这将会失败。在这种情况下,必须始终记住引号:
"%JAVA_HOME%\bin\java" ...
除非你说行为是随机的......无论如何,尝试将安装移动到名称中没有空格的文件夹,看看它会做什么。
关于JAVA_HOME 在 Windows 8 上未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546087/