Erstellen Sie einen symbolischen link mit Java
Ich habe Probleme beim erstellen einen symbolischen link zu einem Verzeichnis, in Java. Ich bin mit dem createSymbolicLink () - Methode der Files-Klasse: http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html
Absolute Pfade:
- Ziel:
/some/path/target
- Link:
/some/path/xxx/linkname
Ich würde erwarten, dass ein link in das Verzeichnis /some/path/xxx/
wird erstellt, um den Ordner /some/path/target
, aber stattdessen einen link von /some/path/xxx/linkname
zu /some/path/xxx/target
erstellt. Ich kann einfach nicht herausfinden, was ich falsch mache.
Wenn ich ein link von /some/path/linkname
zu /some/path/target
funktioniert alles wie erwartet.
Jede Hilfe wird sehr geschätzt.
BEARBEITEN:
Hier ist mein code:
Path records = Paths.get(Properties.getProperty("records.path"));
Path recordsLink = Paths.get(Properties.getProperty("webserver.root") + System.getProperty("file.separator") + records.getFileName());
try {
Files.createSymbolicLink(recordsLink, records);
} catch (IOException e) {
e.printStackTrace();
}
"Datensätze.Pfad" und "webserver.root" werden sowohl relative Pfade.
Eigentlich habe ich nur eine Lösung gefunden, um das problem: Es funktioniert, wenn ich dies tun:
records = records.toAbsolutePath();
Bin ich davon ausgegangen, das createSymbolicLink()
werden absolute Pfade verwenden Sie zum erstellen der links, die war falsch.
- Können Sie post-Codes ?
- Ich habe eine Lösung gefunden. Siehe editierten post.
- Bitte nicht Bearbeiten, Fragen zu stellen, Antworten gibt. Auch wenn Sie die Antwort auf Ihre Frage selber tun, steckte es in eine passende Antwort.
- Hätte ich, aber mit weniger als 10 Ruf, ich warten Sie 10 Stunden Zeit, bevor ich posten kann, eine Antwort auf meine eigene Frage.
- 10 Stunden vergangen sind 🙂
- Ich glaube, die Wurzel des Problems ist die Lage der
cwd
(current working directory).. Die unter java kann manchmal sein, überall. Wenn man wollte, um einen relativen Pfad verwenden, müssen Siecd
Sie zu dem Ordner, wo Sie wollen den link. Siehe: Java-Datei Ändern Working Directory
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich die Lösung zu dem problem: Es funktioniert, wenn ich dies tun:
Bin ich davon ausgegangen
createSymbolicLink()
werden absolute Pfade verwenden Sie zum erstellen der links, die war falsch.records = records.toAbsolutePath()
entspricht.