Pourquoi ne puis-je pas voir java.exe de Cygwin?
la source
Dans les éditions x64 de Windows 8/7 / Vista, le contenu du dossier C: \ Windows \ System32 dépend du nombre de bits de l'application.
Pour les applications 64 bits (telles que l'invite de commandes Windows cmd.exe
), il n'y a pas de redirection du système de fichiers:
C:\Windows\System32
(dans le logiciel) -> C:\Windows\System32
(sur le disque).
Ainsi, le dossier C: \ Windows \ System32 contient des fichiers DLL et EXE 64 bits, du point de vue de l'application 64 bits.
Pour les applications 32 bits (comme bash.exe
Cygwin) qui s'exécutent via le sous-système WoW64 sous Windows x64, il existe deux redirections dans le système de fichiers:
C:\Windows\System32
(dans le logiciel) -> C:\Windows\SysWOW64
(sur le disque).
C:\Windows\Sysnative
(dans le logiciel) -> C:\Windows\System32
(sur disque).
Ainsi, le dossier C: \ Windows \ System32 contient des fichiers DLL et EXE 32 bits, du point de vue de l'application 32 bits.
Si vous souhaitez accéder aux applications 64 bits et aux fichiers DLL (tels que java*.exe
) à partir d'applications 32 bits (telles que Cygwin bash.exe
), vous devez utiliser le C:\Windows\Sysnative
chemin d'accès ou /cygdrive/c/Windows/Sysnative
en notation Cygwin.
(ceci est une réponse mise à jour et étendue)