Warum kann ich java.exe von Cygwin nicht sehen?
quelle
In x64-Editionen von Windows 8/7 / Vista hängt der Inhalt des Ordners C: \ Windows \ System32 von der Bitheit der Anwendung ab.
Für 64-Bit-Anwendungen (wie die Windows-Eingabeaufforderung cmd.exe
) gibt es keine Umleitung des Dateisystems:
C:\Windows\System32
(in der Software) -> C:\Windows\System32
(auf der Festplatte).
Der Ordner C: \ Windows \ System32 enthält also 64-Bit-DLL- und EXE-Dateien aus Sicht der 64-Bit-Anwendung.
Für 32-Bit-Anwendungen (z. B. bash.exe
von Cygwin), die über das WoW64-Subsystem unter Windows x64 ausgeführt werden, gibt es zwei Umleitungen im Dateisystem:
C:\Windows\System32
(in der Software) -> C:\Windows\SysWOW64
(auf der Festplatte).
C:\Windows\Sysnative
(in Software) -> C:\Windows\System32
(auf Festplatte).
Der Ordner C: \ Windows \ System32 enthält also 32-Bit-DLL- und EXE-Dateien aus Sicht der 32-Bit-Anwendung.
Wenn Sie java*.exe
über 32-Bit-Anwendungen (z. B. Cygwins bash.exe
) auf 64-Bit-Anwendungen und DLL-Dateien (z. B. ) zugreifen möchten , müssen Sie den C:\Windows\Sysnative
Pfad oder die /cygdrive/c/Windows/Sysnative
Cygwin-Notation verwenden.
(Dies ist eine aktualisierte und erweiterte Antwort)