2013-07-29 28 views
6

Javaのディレクトリへのシンボリックリンクを作成できません。私はそのリンクを期待/some/path/xxx/linkname Javaでシンボリックリンクを作成する

http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html

絶対パス:

  • 対象:/some/path/target
  • リンク私は、ファイルのクラスからcreateSymbolicLink()メソッドを使用していますディレクトリ/some/path/xxx/がフォルダ/some/path/targetに作成されますが、代わりに/some/path/xxx/linknameから/some/path/xxx/targetへのリンクが作成されます。私は何が間違っているのか分かりません。

    /some/path/linknameから/some/path/targetへのリンクを作成すると、すべて正常に動作します。

    ご協力いただきまして誠にありがとうございます。

    EDIT: ここに私のコードです:

    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()が間違っていたリンクを作成するために、絶対パスを使用しますと仮定:それは私がこれを行う場合は動作します:

    は、実際に私はちょうど問題への解決策を見つけました。

+1

コードを掲載することはできますか? –

+1

解決策が見つかりました。編集された記事を参照してください。 – omnibrain

+2

質問を編集して回答を投稿しないでください。あなたがあなたの質問に対する答えを見つけたとしても、それを適切な答えに入れてください。 –

答えて

6

私はこの問題への解決策を見つけた:

records = records.toAbsolutePath(); 

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

+2

パスから文字列への変換の理由が不明 - 'records = records.toAbsolutePath()'が同等。 – Max

関連する問題