14

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

4

1 に答える 1

9

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

records = records.toAbsolutePath();

createSymbolicLink()リンクを作成するために絶対パスを使用すると仮定しましたが、これは間違っていました。

于 2014-11-27T18:43:27.317 に答える