web-dev-qa-db-ja.com

Java)でシンボリックリンクを作成する

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()が絶対パスを使用してリンクを作成すると想定しましたが、これは誤りでした。

12
omnibrain

私は問題の解決策を見つけました:これを行うと機能します:

_records = records.toAbsolutePath();
_

createSymbolicLink()が絶対パスを使用してリンクを作成すると想定しましたが、これは誤りでした。

9
omnibrain