MinGW 和 JDK 相互禁用彼此路径中的可执行文件

MinGW and JDK mutually disable each other's executables in path

以下所有设置仅在系统变量中(我的用户变量不包括 JDK 或 MinGW 地址)。我有一个 JAVA_HOME 环境变量设置如下: JAVA_HOME - C:\Program Files\Java\jdk1.8.0_66

(这产生了与我将 jdk 的地址写入路径相同的行为)

当我的路径变量以 %JAVA_HOME%\bin; C:\MinGW\bin; ... 开头时,我在 cmd 中获得了正确的 javac 访问权限,但 gccg++ 都不起作用。 通常的错误信息:

'g++' is not recognized as an internal or external command, operable program or batch file

当我的路径变量以 C:\MinGW\bin; %JAVA_HOME%\bin; ... 开头时,我开始使用 gcc 命令,但现在 javac 无法识别...

'javac' is not recognized as an internal or external command, operable program or batch file

我该如何解决这个问题?

(我正在尝试为 Eclipse 设置一个环境以使用 cocos2d-x 开发到 Android,我使用 MinGW v4.8.1、JDK 1.8 x64 和 Win v8。 1 x64)


我的完整路径如下所示:

%JAVA_HOME%\bin;
C:\MinGW\bin;
C:\ProgramData\Oracle\Java\javapath;
C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
C:\Program Files (x86)\Windows Kits.1\Windows 性能工具包\;
C:\程序Files\MicrosoftSQLServer0\Tools\Binn\;
C:\程序Files\MicrosoftSQLServer0\Tools\Binn\;
C:\Program 文件 (x86)\CMake\bin;
C:\程序Files\TortoiseHg\;
C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC0\Tools\Binn\;
C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\ManagementStudio\;
C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\;
C:\Program Files (x86)\Microsoft SQL Server0\DTS\Binn\;
C:\程序Files\MicrosoftSQLServer\ClientSDK\ODBC0\Tools\Binn\;
C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\;
C:\程序Files\MicrosoftSQLServer0\DTS\Binn\;
C:\Program Files (x86)\GtkSharp.12\bin;
C:\Program Files (x86)\Skype\Phone\

其中 javapath 间接指向 JRE exe。

编辑:
jdk1.7.0_79 x64 产生相同的结果(我从现在开始坚持使用 1.7)

编辑:
我重新安装了mingw,没有任何改变。如果 jdk 地址在 mingw 地址之前,则所有 mingw 可执行文件都无法访问,反之亦然,这让我很难受:(

我尝试了很多变体,JRE 的路径必须在 MinGW 的路径之前,否则我什至无法从 cmd 调用 "java",但是它不会像 [=116= 那样禁用 MinGW 的 exe ] 确实如此。

所以这个变体例如仍然隐藏路径中的所有 MinGW exe:
C:\程序Files\Java\jre1.8.0_66\bin;
C:\程序Files\Java\jdk1.7.0_79\bin;
C:\MinGW\bin; 等...

您是否尝试从 MinGW bash 提示或 Windows CMD 访问 g++ 和 javac?

从 Windows CMD 假设它,因为你正在改变那里的路径.. 在我看来一切都很好。 g++ 在 C:\MinGW\bin 中可用吗?另外,一旦你更新了PATH,你必须打开一个新的CMD window 才能使更新的路径生效。

哦..我的..天..Windows - only the first entry of PATH-environment variable can be found

SPACES!!!不要在分号后加上 SPACE!!

(谁创建了环境变量编辑 UI(尤其是解析),以及 MSVS 的 inclusion/linkage 编辑,应该 CENSORED)