使用Java创建Windows符号链接(相当于MKLINK)

8

请问有人能告诉我如何使用Java创建符号链接(与MKLINK相同的方式)和/或删除符号链接。我已经找到了一些解决方案,它们将Java作为包装器,并使用Windows本地程序来完成此操作,但我真的需要一个纯Java解决方案。提前感谢您!

2个回答

12

自Java 7以来,您可以使用NIO软件包轻松地执行此操作。

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

请记住,您需要正确的权限才能进行此操作。在我的单元测试中,我不得不以管理员身份运行Eclipse,才能使其正常工作(与我无法从普通的 cmd.exe 中创建链接的情况相同)


-3
据我所知,Windows 没有像类 Unix 系统那样的“真正”的符号链接。
但是 Windows 有以下相关工具:
  1. 您可以映射网络驱动器,即将驱动器字母附加到指定的网络路径。您可以使用 WMI 完成此操作。要从 Java 访问 WMI,请查看诸如 JaWin、Jinterop、Jintegra 或编写 JScript 或 VBScript 中的 WMI 脚本并从 Java 执行它。

  2. 您可以使用命令 subst 将字母分配给本地文件系统路径。这是最接近 Unix 软链接的方法。

  3. 您可以创建桌面快捷方式。手动创建一个并查看它。快捷方式实际上是常规文本文件(据我记得是 INI 格式)。您可以使用任何语言轻松创建其中之一,包括 Java。这不是软链接,但它是可点击的。


3
Windows Vista/7有某种符号链接。MKLINK命令行实用程序可以实现此功能。在Java中是否没有办法模仿这个实用程序所做的事情? - DeathByTensors

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接