在Windows 8上,JAVA_HOME被取消设置

3

我正在使用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错误,因为在Windows 7上一切都很好。

已经测试:

  • 安装x64 Java而不是x86
  • 在路径末尾加上斜杠 /

如果将JAVA_HOME更改为指向JDK(其中javac.exe驻留)而不是JRE,会发生什么? - Muel
1个回答

0

这可能与路径中的空格有关。您已经正确定义了它,但某些脚本可能会像这样使用它:

%JAVA_HOME%\bin\java ...

这将会失败。在这种情况下,人们必须记住引号:

"%JAVA_HOME%\bin\java" ...

除非你说行为是随机的... 无论如何,尝试将安装移动到名称中没有空格的文件夹中,看看它会发生什么。


我不确定是否完全是这个问题... 我将Java安装文件夹移动到无空格路径,并出现了一个新的错误 找不到由JAVA_HOME指定的Java安装:...my_path...\jre 它正在搜索我的jre中的jre。 因此,我将JAVA_HOME指向了我的Java JDK而不是JRE,自那以后就没有任何问题了。 - Pierre Schambacher

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