在Windows中如何设置环境variables(并不像听起来那么容易)

请参阅以下更新

让我解释一下情况:

在系统控制面板中,我将JAVA_HOMEC:\Java\JDK1.6 。 但是,当我进入terminal窗口,看看发生了什么,我得到了这个:

 echo %JAVA_HOME% D:\Program Files\Java\jre6 

为什么不在控制面板中设定它的值呢? 我放入的其他环境variables已经设置好了,但是看起来好像有什么东西在压倒它。

警告词:

尽pipe我是这个系统的pipe理员,但他们已经制定了各种各样的愚蠢的限制性政策。 例如,我不能设置我的回收站不要警告我,当我删除的东西。 当您右键单击回收站时, Property设置不存在。 我也不能做regedit 。 为了设置环境属性,我设置了一个MCC控制台,然后在那里拉起系统控制面板。


更新

是的,我知道环境variables不会被重置,直到我打开一个新的命令行提示符。 不过,这是我几周前设定的,而且这台机器自从几次启动。

我已经把它设置在系统variables(下面的框)。 如果我把它放在用户variables(上面的框),它会得到正确的设置,但是我的PATH设置不正确,如果我把%JAVA_HOME%在path中。

Solutions Collecting From Web of "在Windows中如何设置环境variables(并不像听起来那么容易)"

回顾我的问题,并把所有的疏忽结束…

原来,管理员禁用了在系统上设置PATH的功能。 管理员有一个政策,如果他们不明白的东西,他们锁定下来。 而且,由于他们不太了解,他们把一切都锁定了。

这是一个政府办公室,管理员锁定了任何不涉及在微软Office写官僚规章或备忘录的东西,任何人都不愿意阅读。

不幸的是,我是那里的一名开发人员,所以我一直在这些墙壁上跑。 我的主管退出了,把我带到他的新网站。 我很高兴我离开了。

你必须打开一个新的命令提示符来实际“查看”新的变量(或者在cmd窗口中调用set命令来进行临时修改,或者在永久修改时修改setx )。

当进程启动时,环境变量是从父进程继承的。 当您在控制面板中更改或添加变量时,您的shell(即主explorer.exe进程)会立即看到更改,而不是任何其他正在运行的进程。 当您以explorer.exe作为父进程启动一个新进程时,例如双击一个文件或选择Start + Run,新创建的进程也会看到更新的环境变量。

分析这类事情的一个很好的工具是Process Explorer 。 它向您显示父级和子级进程之间的关系,并双击正在运行的进程,向您显示详细的对话框,其中列出了当前进程的所有环境变量的选项卡。

当您通过控制面板更改环境变量时,它只会更改正在运行的进程中的环境。

当一个进程启动时,将在启动时“继承”父进程的环境。 之后的更改不会传播到子进程。

您可能需要重新启动您的终端,或者确保注销,然后重新打开。

问题是,所有可执行文件都在bin文件夹中,因此您应该在PATH变量中设置%JAVA_HOME%\bin

你几乎在那里我的朋友,它通常发生。 马尔塞