在Play Framework中使用Files.createSymbolicLink获取FileSystemException"客户端不拥有所需的权限"

rip*_*234 20 java permissions nio java-7 playframework

我正在尝试在Play中使用新的Java 7 Files.createSymbolicLink()方法!框架,我得到以下异常:

RuntimeException occured : java.nio.file.FileSystemException: c:\work\foo\bar:
A required privilege is not held by the client.
Run Code Online (Sandbox Code Playgroud)

这是我第一次遇到Java的权限模型,所以我理解发生了什么,但还不知道如何解决它(我想给控制器更多的权限).

如果有人能够比我找到答案更快地回答这里,我(以及未来的读者)将不胜感激.

Mat*_*ell 13

这不是Java权限的问题,而是操作系统权限的问题.请参见FileSystemException.

FileSystemException的子类有:AccessDeniedException,AtomicMoveNotSupportedException,DirectoryNotEmptyException,FileAlreadyExistsException,FileSystemLoopException,NoSuchFileException,NotDirectoryException,NotLinkException.

来自AccessDeniedException:

文件系统操作被拒绝时检查的异常抛出,通常是由于文件权限或其他访问检查.此异常与访问控制器或安全管理器在拒绝访问文件时抛出的AccessControlException或SecurityException无关.


rip*_*234 11

看到这个答案,并记住我在Windows 7上使用UAC运行,我知道这是一个Windows问题.

  1. Java中没有任何东西可以让它消失.
  2. 我应该能够以某种方式特定关闭UAC for Play(以管理员等身份运行...),但这个问题根本与Play(或java权限)无关.

确实,在跑步时:

runas /noprofile /user:Administrator cmd
cd c:\myapp
play run
Run Code Online (Sandbox Code Playgroud)

一切顺利.