为什么 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 $PATH
或 env | 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.exe
、javaw.exe
、javaws.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
检查 .bash_profile
文件中的 PATH
变量,确保它反映 java
的正确 version
。该文件通常位于您的主目录 C:\Users\{HOME}\.bash_profile
如果您尝试手动设置JDK
,那么请检查您是否没有在系统下的Path
环境变量中遗漏Oracle Java
(C:\ProgramData\Oracle\Java\javapath
)变量,将其删除,java -version
应该可以正常工作。
当您有 运行 个 IDE 和另一组 JDK 个实例时,它就会发生。解决此问题的更好方法是在路径中设置 JDK 主页并使其在最后一行可用。这对我有用。
在 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 $PATH
或 env | 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.exe
、javaw.exe
、javaws.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
检查 .bash_profile
文件中的 PATH
变量,确保它反映 java
的正确 version
。该文件通常位于您的主目录 C:\Users\{HOME}\.bash_profile
如果您尝试手动设置JDK
,那么请检查您是否没有在系统下的Path
环境变量中遗漏Oracle Java
(C:\ProgramData\Oracle\Java\javapath
)变量,将其删除,java -version
应该可以正常工作。
当您有 运行 个 IDE 和另一组 JDK 个实例时,它就会发生。解决此问题的更好方法是在路径中设置 JDK 主页并使其在最后一行可用。这对我有用。