代码之家  ›  专栏  ›  技术社区  ›  David W.

如何在Windows中设置环境变量(不像听起来那么简单)[关闭]

  •  4
  • David W.  · 技术社区  · 15 年前

    请参阅下面的更新

    我来解释一下情况:

    在系统控制面板中,我设置 JAVA_HOME 作为 C:\Java\JDK1.6 . 然而,当我走进一个终端窗口看发生了什么,我得到了这个:

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

    这到底是在哪里设置的,为什么它不拿起我在控制面板中设置的值呢?我输入的其他环境变量已设置,但似乎有东西正在覆盖它。

    警告语:

    虽然我是这个系统的管理员,但他们对它采取了各种愚蠢的限制性政策。例如,当我删除某个内容时,我不能将回收站设置为不警告我。这个 Property 右键单击回收站时没有设置。我也做不到 regedit . 为了设置环境属性,我设置了一个MCC控制台,并在那里完全打开系统控制面板。


    更新

    是的,我知道在打开新的命令行提示符之前,环境变量不会重置。然而,这是我几个星期前设置的,机器已经启动了几次。

    我在系统变量中设置了它(下框)。如果我把它放在用户变量(上面的框)中,它确实设置正确,但是 PATH 如果我将%JAVA_HOME%放在路径中,则设置不正确。

    4 回复  |  直到 15 年前
        1
  •  5
  •   David W.    13 年前

    回顾我的问题,把所有的问题都解决掉。。。

    结果管理员禁用了在系统上设置路径的功能。管理员有一个政策,如果他们不明白什么,他们会把它锁起来。而且,因为他们不太明白,所以把一切都锁了起来。

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

    不幸的是,我是那里的一个开发人员,所以我一直在碰壁。我的主管辞职了,带我去了他的新网站。我很高兴我能离开那里。

        2
  •  0
  •   zdan    15 年前

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

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

    你可能需要重新启动你的终端,或者为了确定,先注销然后再重新打开。

        3
  •  0
  •   Dirk Vollmar    15 年前

    必须打开一个新的命令提示符才能真正“看到”新变量(或调用 set 用于临时更改或 setx 对于永久性变更)。

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

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

        4
  •  0
  •   Anshul Goyal    11 年前

    问题是,所有可执行文件都在 bin 文件夹,以便您设置 %JAVA_HOME%\bin 在你的内心 PATH 变量。

    你就快到了,我的朋友,这是常有的事。 马塞