Por que não consigo ver o java.exe no Cygwin?
fonte
Nas edições x64 do Windows 8/7 / Vista, o conteúdo da pasta C: \ Windows \ System32 depende da aceitação do aplicativo.
Para aplicativos de 64 bits (como o Windows Command Prompt cmd.exe
) , não há redirecionamento do sistema de arquivos:
C:\Windows\System32
(no software) -> C:\Windows\System32
(no disco).
Portanto, a pasta C: \ Windows \ System32 contém arquivos DLL e EXE de 64 bits, do ponto de vista do aplicativo de 64 bits.
Para aplicativos de 32 bits (como bash.exe
Cygwin), que são executados no subsistema WoW64 no Windows x64, existem dois redirecionamentos no sistema de arquivos:
C:\Windows\System32
(no software) -> C:\Windows\SysWOW64
(no disco).
C:\Windows\Sysnative
(em software) -> C:\Windows\System32
(em disco).
Portanto, a pasta C: \ Windows \ System32 contém arquivos DLL e EXE de 32 bits, do ponto de vista do aplicativo de 32 bits.
Se você deseja acessar aplicativos de 64 bits e arquivos DLL (como java*.exe
) a partir de aplicativos de 32 bits (como o Cygwin bash.exe
), precisará usar o C:\Windows\Sysnative
caminho ou a /cygdrive/c/Windows/Sysnative
notação Cygwin.
(esta é uma resposta atualizada e estendida)