2013-10-07 2 views
4

Не могли бы рассказать мне, как сделать символическую ссылку (точно так же, как это делает MKLINK) и/или удалить символическую ссылку с Java. Я нашел решения, которые используют Java в качестве оболочки, и для выполнения этой программы используют собственную программу Windows, но я действительно хочу чистое решение для Java. Заранее спасибо!Создать символическую ссылку Windows с Java (эквивалентно MKLINK)

ответ

5

С Java 7 вы можете легко это сделать, используя пакет NIO.

Path target = Paths.get("target"); 
Path link = Paths.get("link"); 
Files.createDirectory(target); 
Files.createSymbolicLink(link, target); 

Помните, что для этого вам нужны правильные привилегии. В моем модульном тесте мне пришлось запускать eclipse в качестве администратора, чтобы он работал (то же самое, что я не мог создать ссылку из обычного cmd.exe)

0

Насколько я знаю, окно не имеет real символические ссылки, такие как Unix-подобная система.

Однако для Windows имеет следующие соответствующие инструменты:

  1. Вы можете сопоставить сетевой диск, т.е. крепят букву диска указанного сетевого пути. Вы можете сделать это с помощью WMI. Чтобы получить доступ к WMI из java, взгляните на такие инструменты, как JaWin, Jinterop, Jintegra или напишите WMI-скрипт в JScript o VBScript и выполните с Java.

  2. Вы можете использовать команду subst, которая присваивает букву локальному пути файловой системы. Это самый близкий подход к программной ссылке Unix.

  3. Вы можете создать ярлык на рабочем столе. Создайте его вручную и взгляните на него. Ярлык на самом деле является обычным текстовым файлом (насколько я помню в формате INI). Вы можете легко создать его с помощью любого языка, включая java. Это не мягкая ссылка, но она доступна для просмотра.

+1

Ну, Windows Vista/7 имеет какие-то символические ссылки. Утилита командной строки MKLINK выполняет это. Невозможно ли в Java подражать тому, что делает эта утилита? – DeathByTensors

Смежные вопросы