Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当JAVA_HOME的确切路径在同一个地方工作时,为什么JAVA_HOME在路径中失败?_Java_Windows - Fatal编程技术网

当JAVA_HOME的确切路径在同一个地方工作时,为什么JAVA_HOME在路径中失败?

当JAVA_HOME的确切路径在同一个地方工作时,为什么JAVA_HOME在路径中失败?,java,windows,Java,Windows,首先,我注意到之前有人问过一个非常相关的问题,但答案是重新启动系统,这对我来说不起作用。如果有人感兴趣,请点击以下链接: 此外,关于路径也有一些类似的讨论,答案似乎涉及到条目在路径中的显示顺序,或者注册表重置,但是这里的情况似乎不是这样,因为我的工作和非工作解决方案使用相同的顺序和相同的注册表设置。我没有列出这些,因为有几个 但我的情况是,我已将JAVA_设置为主页: 然后我在Path中使用了JAVA_HOME(在底部,而不是顶部): 然后javac-version在命令行失败: 但如果

首先,我注意到之前有人问过一个非常相关的问题,但答案是重新启动系统,这对我来说不起作用。如果有人感兴趣,请点击以下链接:

此外,关于路径也有一些类似的讨论,答案似乎涉及到条目在路径中的显示顺序,或者注册表重置,但是这里的情况似乎不是这样,因为我的工作和非工作解决方案使用相同的顺序和相同的注册表设置。我没有列出这些,因为有几个

但我的情况是,我已将JAVA_设置为主页:

然后我在Path中使用了JAVA_HOME(在底部,而不是顶部):

然后javac-version在命令行失败:

但如果我用路径中的确切内容替换JAVA_HOME:

那么javac-version就可以工作了:


所以,这似乎是一个毫无意义的问题,因为我可以让它工作。然而,我想知道为什么一部分是为了了解正在发生的事情,另一部分是为了知道如果在其他地方使用JAVA_HOME,JAVA_HOME是否会失败。

如果您的
%JAVA_HOME%
变量在用户变量范围内,您必须从特定的用户帐户登录(*在Windows 7上检查)


或者正如Martin Zeitler在评论中提到的,最好的选择是将两个变量放在同一个范围内。

您需要将
JAVA\u HOME\bin
添加到path<代码>javac不在顶层dir@flakes但是%JAVA\u HOME%\bin不是我路径的最后一行吗(第二个图像)?同样,我也尝试了JAVA\u HOME(后面跟着\bin),没有像我的示例中那样封闭%%,这也失败了,但是同样,JAVA\u HOME的简单路径内容(当然后面跟着bin)是否有效…@RCM在同一范围内定义了两个变量,而不是系统和用户。看起来JAVA_HOME必须是一个系统变量,而不是用户变量。我想这是显而易见的?!不是对我,哈哈!Martin Zeitler既然你是第一个这么说的,你想对答案打分吗?写下来,我会选择你。好吧,我会接受这一条,因为Martin Zeitler从来没有回来写过他的评论作为回答……尽管他是第一个指出我认为主要问题的人……JAVA_HOME必须是一个系统变量(而不是用户变量)。