2011-11-22 8 views
14

estoy tratando de utilizar el nuevo Java 7 Files.createSymbolicLink() método dentro de reproducción! Marco, y me dio la siguiente excepción:FileSystemException "Un privilegio necesario no es contenido por el cliente" usando Files.createSymbolicLink en el Marco de Juego

RuntimeException occured : java.nio.file.FileSystemException: c:\work\foo\bar: 
A required privilege is not held by the client. 

Este es mi primer encuentro con el modelo de permisos de Java, por lo que entiendo lo que está pasando, pero aún no saben cómo solucionarlo (me gustaría dar los controladores más permisos).

Si alguien puede responder más rápido de lo que aquí voy a encontrar la respuesta, yo (y los lectores futuros) estaré agradecido.

+1

Con Windows (W7), se puede añadir un usuario a la lista de los que pueden crear enlaces simbólicos (sin desactivar UAC) usando las políticas de seguridad. Ejecute "secpol.msc" y cambie "Configuración de seguridad | Políticas locales | Asignación de derechos de usuario | Crear enlaces simbólicos" – mins

Respuesta

9

esto no es un problema con los permisos java, pero un problema con los permisos del sistema operativo. Ver FileSystemException.

Las subclases de FileSystemException son: AccessDeniedException, AtomicMoveNotSupportedException, DirectoryNotEmptyException, FileAlreadyExistsException, FileSystemLoopException, NoSuchFileException, NotDirectoryException, NotLinkException.

De AccessDeniedException:

excepción revisada produce cuando se rechaza una operación de sistema de archivos, por lo general debido a un permiso de archivo u otra comprobación de acceso. Esta excepción no está relacionada con la excepción AccessControlException o SecurityException lanzadas por los controladores de acceso o los administradores de seguridad cuando se deniega el acceso a un archivo.

+0

Gracias, ver mi respuesta. – ripper234

+0

Por cierto, cuando busqué en Google el rastro de la pila, no hubo resultados en Google. Entonces, ¿soy el primero en Internet que tuvo un problema con nio + UAC y lo publiqué? – ripper234

+0

@ ripper234 Lo dudo, pero puede ser el primero en stackoverflow. –

8

Después de ver this answer, y recordar que estoy ejecutando en Windows 7 con UAC, entiendo que este es un problema de Windows.

  1. No se puede hacer nada desde Java para que esto desaparezca.
  2. yo debería ser capaz de desactivar UAC for Juega específicamente alguna manera (Ejecutar como administrador etc ...), pero la cuestión no es realmente relacionado con Play (o permisos) de Java en absoluto.

De hecho, cuando se ejecuta:

runas /noprofile /user:Administrator cmd 
cd c:\myapp 
play run 

todo funciona bien.

+0

Estoy enfrentando el mismo problema, ¿cómo resolver esto? – user2056563

Cuestiones relacionadas