Відповіді:
У x64 виданнях Windows 8/7 / Vista вміст папки C: \ Windows \ System32 залежить від розрядності програми.
Для 64-бітних програм (наприклад, Windows Command Prompt cmd.exe
) немає перенаправлення файлової системи:
C:\Windows\System32
(у програмному забезпеченні) -> C:\Windows\System32
(на диску).
Отже, папка C: \ Windows \ System32 містить 64-бітні файли DLL та EXE, з точки зору 64-бітної програми.
Для 32-розрядних додатків (наприклад, bash.exe
від Cygwin), які працюють через підсистему WoW64 у Windows x64, у файловій системі є два перенаправлення:
C:\Windows\System32
(у програмному забезпеченні) -> C:\Windows\SysWOW64
(на диску).
C:\Windows\Sysnative
(у програмному забезпеченні) -> C:\Windows\System32
(на диску).
Отже, папка C: \ Windows \ System32 містить 32-бітні файли DLL та EXE, з точки зору 32-бітної програми.
Якщо ви хочете отримати доступ до 64-розрядних програм та DLL-файлів (таких як java*.exe
) з 32-бітних програм (наприклад, Cygwin's bash.exe
), вам потрібно скористатися C:\Windows\Sysnative
контуром або /cygdrive/c/Windows/Sysnative
в нотації Cygwin.
(це оновлена та розширена відповідь)