如何使用java.nio.Files创建软链接

10
我正在Windows上通过以下命令创建符号链接:

mklink /D "目标文件夹路径" "源文件夹路径"

请注意,该命令需要管理员权限以执行。
cmd /c mklink /J "${linkName.canonicalPath}" "${targetFolder.canonicalPath}"

使用Groovy并使用Runtime.getRuntime().exec()方法可以正常工作。

但我想使用java.nio.Files.createSymbolicLink()方法来完成相同的操作。但是,我总是收到相同的错误消息:

java.nio.file.FileSystemException: A required privilege is not held by the client.

mklink /J命令适用于当前用户,我想避免提升权限。

2
https://dev59.com/Tmsy5IYBdhLWcg3w6yUN - tim_yates
你也可以使用Java的Files类:Files.createSymbolicLink( ... ) - will
1个回答

21

在Windows 7中,您可以使用安全策略将用户添加到可以创建符号链接的名单中(而无需禁用UAC)。

  • 运行secpol.msc
  • 进入安全设置|本地策略|用户权限分配|创建符号链接
  • 添加您的用户名。
  • 重新启动您的会话(注销+登录,无需重新启动Windows)。

谢谢,这就是我一直在寻找的解决方案。 - Fernando Rosado
3
「Win10关闭UAC」- 我必须设置本地策略>安全选项>用户账户控制:以管理员批准模式运行所有管理员= 禁用 - 否则会出现相同的FileSystemException: A required privilege is not held by the client错误。 - Xtra Coder
jbang 把我带到这里 - Begui

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