【问题标题】:Creating a symbolic link with Java使用 Java 创建符号链接
【发布时间】:2013-07-29 09:15:49
【问题描述】:

我在创建指向 Java 目录的符号链接时遇到问题。我正在使用 Files 类中的 createSymbolicLink() 方法:http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html

绝对路径:

  • 目标:/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();

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

【问题讨论】:

  • 你能发布你的代码吗?
  • 我找到了解决方案。查看编辑后的帖子。
  • 请不要编辑问题以将答案放在那里。即使您自己找到了问题的答案,也请务必将其放入正确的答案中。
  • 我会,但声誉低于 10,我必须等待 10 小时才能发布我自己问题的答案。
  • 10 小时过去了 :)

标签: java symlink


【解决方案1】:

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

records = records.toAbsolutePath();

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

【讨论】:

  • 不确定为什么要从路径转换为字符串再到路径 -- records = records.toAbsolutePath() 是等效的。
猜你喜欢
  • 2019-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
  • 1970-01-01
  • 2011-12-13
相关资源
最近更新 更多