使用Java创建符号链接

omn*_*ain 11 java symlink

我在创建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();
}
Run Code Online (Sandbox Code Playgroud)

"records.path"和"webserver.root"都是相对路径.

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

records = records.toAbsolutePath();
Run Code Online (Sandbox Code Playgroud)

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

omn*_*ain 9

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

records = records.toAbsolutePath();
Run Code Online (Sandbox Code Playgroud)

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

  • 不确定为什么你要从路径转换为字符串到路径 - `records = records.toAbsolutePath()`是等价的. (2认同)