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

oct*_*pod 4 java windows git-bash

在 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. %PATH%如果我输入 或echo $PATH,这会显示在我的变量中env | grep PATH

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

聚苯乙烯

除此之外,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)
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 5

检查文件夹中是否有一些旧的java.exe, javaw.exe,如“ Java 路径..错误”中所述。javaws.exec:/windows/system32jvm.cfg

我刚刚在 Windows 上检查了Git 2.6.3 ,其中我没有任何内容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)
Run Code Online (Sandbox Code Playgroud)

和命令:

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)
Run Code Online (Sandbox Code Playgroud)

两者在同一位置报告相同的 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
Run Code Online (Sandbox Code Playgroud)

结论:升级到最新的 git for windows