使用Java创建符号链接

使用Java创建符号链接,java,symlink,Java,Symlink,在Java中创建指向目录的符号链接时遇到问题。我正在使用Files类中的createSymbolicink()方法: 绝对路径: 目标:/some/path/Target 链接:/some/path/xxx/linkname 我希望在目录/some/path/xxx/中创建一个指向文件夹/some/path/target的链接,但会创建一个从/some/path/xxx/linkname到/some/path/xxx/target的链接。我只是不知道我做错了什么 当我创建从/some/pat

在Java中创建指向目录的符号链接时遇到问题。我正在使用Files类中的createSymbolicink()方法:

绝对路径:

  • 目标:
    /some/path/Target
  • 链接:
    /some/path/xxx/linkname
我希望在目录
/some/path/xxx/
中创建一个指向文件夹
/some/path/target
的链接,但会创建一个从
/some/path/xxx/linkname
/some/path/xxx/target
的链接。我只是不知道我做错了什么

当我创建从
/some/path/linkname
/some/path/target
的链接时,一切正常

非常感谢您的帮助

编辑: 这是我的密码:

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();
}
“records.path”和“webserver.root”都是相对路径

事实上,我刚刚找到了问题的解决方案:如果我这样做,它会起作用:

records = records.toAbsolutePath();
records = records.toAbsolutePath();

我假设
createSymbolicLink()
将使用绝对路径来创建链接,这是错误的。

我找到了问题的解决方案:如果我这样做,它会起作用:

records = records.toAbsolutePath();
records = records.toAbsolutePath();

我假设
createsymbolicink()
将使用绝对路径来创建链接,这是错误的。

你能发布你的代码吗?我找到了一个解决方案。请参阅已编辑的帖子。请不要编辑问题以将答案放在那里。即使你自己找到了问题的答案,也要把它放在正确的答案中。我会的,但名声不到10个小时,我必须等10个小时才能发布我自己问题的答案。10个小时过去了:)不确定为什么要从路径转换为字符串再转换为路径--
records=records.toabsolutionpath()
是等效的。