echo %JAVA_HOME% 在 cmd 中有效,但在 git bash 中无效

dav*_*hew 5 java shell command-prompt java-home git-bash

Windows 10 用户。我最近第一次安装了 git,但遇到了一个奇怪的问题。有人告诉我,JAVA_HOME如果我想在 git 中使用 java,我需要设置环境变量。

我能够JAVA_HOME正确更改命令提示符,但无法在 git bash 中显示相同的更改。输入echo %JAVA_HOME%会在命令提示符中返回正确的路径,但会%JAVA_HOME%在 git bash 中返回。

我进入系统设置并更改系统变量,使其JAVA_HOME指向我的 jdk。我更新了PATH系统变量和环境变量中的变量以指向bin和jdk。我关闭并重新打开 git bash 和命令提示符。我重新启动了机器,甚至重新安装了 git 和 jdk。我将 jdk 从 Java 10.0.2 降到了最新的 java 8 (171)。

这些都没有奏效。我已经浏览了无数的 SO 帖子。我究竟做错了什么?

dav*_*hew 10

事实证明, (git) BASH TERMINAL使用与COMMMANDLINE TERMINAL完全不同的语法来执行 echo 。

我一直在做echo %JAVA_HOME%我应该做的事情echo $JAVA_HOME

我看不出我应该使用 $ 而不是 % 符号,因为这些符号在我的字体中看起来非常相似。我只是在出于沮丧而将答案复制/粘贴到 bash 中并在之前不起作用时神奇地起作用后才发现。

但是,是的,答案是使用$而不是%因为它们意味着完全不同的东西。Git bash 使用 $,命令提示符使用 %。您可能会认为他们只是使用相同的符号来完成工作。

  • Git **bash** 是来自 Unix/Linux 世界的 bash shell 的 Windows 版本,其中环境变量确实以 $ 为前缀。我不知道为什么 Microsoft 决定使用 %,就像我不知道为什么在 Unix 使用 / 的地方使用 \ 一样。可能有/也许有正当理由:) (2认同)
  • @fvu MS-DOS 没有目录,但有命令行选项 - (就像现在的 dir /w) - 所以当他们添加目录时,他们是 feqd 并且必须通过使用 \ 作为目录来保持选项工作。 (2认同)
  • 在 bash 中,变量名后面没有 $ (2认同)