/ / Warum unterscheidet sich ein Windows-Symlink von dem in Unix? - Windows, Unix, Symbolic-Link

Warum unterscheidet sich ein Windows-Symlink von dem in Unix? - Windows, Unix, Symbolic-Link

Ich habe im Internet danach gesucht. Alles, was ich finden kann, besagt, dass Windows mklink verh├Ąlt sich wie Unix ln -s (Beispiel in dieser Site).

Ich m├Âchte JDK jedoch so einrichten, dass ich so einfach wie m├Âglich darauf zugreifen kann javac und java von ├╝berall. Ich habe mich daf├╝r entschieden, nur diese beiden in einem separaten Ordner zur Umgebungsvariablen Path hinzuzuf├╝gen, anstatt das Ganze bin Ordner, weil da noch viele andere Sachen drin sind (ohne Bezug: ist das wichtig?).

Ich habe dies in der Vergangenheit erfolgreich in einer Debian-Box durchgemacht ln -s, so anscheinend sollte es gut funktionieren mklinkStattdessen erhalte ich den Fehler "DLL kann nicht gefunden werden", als h├Ątte ich einfach eine Kopie der ausf├╝hrbaren Dateien erstellt.

Die Frage ist also: Warum verhalten sich diese beiden Befehle unterschiedlich? (Auch wenn man sagt, dass man es nicht tun soll)

Antworten:

1 f├╝r Antwort Ôäľ 1

H├Âchstwahrscheinlich wird die ausf├╝hrbare Datei von der gestartetsymlink with as its current Verzeichnis, in dem sich der Symlink befindet, und nicht das Verzeichnis, in dem sich der Symlink befindet Die ausf├╝hrbare Datei befindet sich, sodass die DLLs im Verzeichnis der ausf├╝hrbaren Datei nicht gefunden werden.

Ich bin damit einverstanden, dass nach der Definition desSuchalgorithmus nach Microsoft sollte die DLLs gefunden haben. Dies ist h├Âchstwahrscheinlich ein Mangel im DLL-Suchalgorithmus von Windows und du kannst nichts dagegen tun.

Eine Problemumgehung w├Ąre, einen anderen Mechanismus als symlink zu verwenden. Speichern im Pfadordner a .bat Datei anstelle eines Symlinks. Die Datei w├╝rde ungef├Ąhr so ÔÇőÔÇőaussehen:

cd pathtoexe-folder
exe-file