为什么 Git Bash 没有使用 PATH 环境变量中定义的正确 Java 路径?

Why is Git Bash not using the correct Java path as defined in the PATH environment variable?

在 Git Bash 的实例中,输入 java -version 得到:

Error: could not open 'C:\Program Files (x86)\Java\jre7\lib\i386\jvm.cfg'

然而,我的实际 Java 路径在 D:\Program Files\Java\jdk1.8.0_45\bin 中。如果我输入 echo $PATHenv | grep PATH,这将显示在我的 %PATH% 变量中。

Git Bash 从哪里获取这个不存在的 Java 路径?

P.S.

此外,命令提示符中的 运行 java -version 给出了正确的输出:

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

检查c:/windows/system32文件夹中是否有旧的java.exejavaw.exejavaws.exe,如“Java path..Error of jvm.cfg”中所述。

我刚刚检查了 Git 2.6.3 on Windows,我在 c:/windows/system32 中没有任何内容,结果与以下内容一致:

git bash:

vonc@bigvonc MINGW64 /
$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

和命令:

C:\prgs\git\PortableGit-2.6.3-64-bit>java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

两者在同一地点报告相同的 java:

vonc@bigvonc MINGW64 /
$ which java
/c/prgs/jdk/jdk-7u51-windows-x64/bin/java

C:\prgs\git\PortableGit-2.6.3-64-bit>which java.exe
C:\prgs\jdk\jdk-7u51-windows-x64\bin\java.exe

结论:upgrade to the latest git for windows.

检查 .bash_profile 文件中的 PATH 变量,确保它反映 java 的正确 version。该文件通常位于您的主目录 C:\Users\{HOME}\.bash_profile

如果您尝试手动设置JDK,那么请检查您是否没有在系统下的Path环境变量中遗漏Oracle JavaC:\ProgramData\Oracle\Java\javapath)变量,将其删除,java -version 应该可以正常工作。

当您有 运行 个 IDE 和另一组 JDK 个实例时,它就会发生。解决此问题的更好方法是在路径中设置 JDK 主页并使其在最后一行可用。这对我有用。