java.security.AccessControlException: acceso denegado(java.io.FilePermission
java security accesscontrolexception>: access denied (2)
final File parentDir = new File("S://PDSPopulatingProgram");
parentDir.mkdir();
final String hash = "popupateData";
final String fileName = hash + ".txt";
final File file = new File(parentDir, fileName);
file.createNewFile(); // Creates file PDSPopulatingProgram/popupateData.txt
Estoy intentando crear un archivo en una carpeta pero obtengo una excepción como
java.security.AccessControlException: Access denied
Estoy trabajando en el entorno de windows. Puedo crear una carpeta desde el Explorador de Windows, pero no desde el Código Java.
¿Cómo puedo resolver este problema?
Aunque no se recomienda, pero si realmente desea que su aplicación web acceda a una carpeta fuera de su directorio de implementación. java.policy
agregar el siguiente permiso en el archivo java.policy
(la ruta es como en la respuesta de Petey B)
permission java.io.FilePermission "your folder path", "write"
En tu caso seria
permission java.io.FilePermission "S:/PDSPopulatingProgram/-", "write"
Aquí /-
significa cualquier archivo o subcarpeta dentro de esta carpeta.
Advertencia: pero al hacer esto, está invitando a algún riesgo de seguridad.
Dentro de su <jre location>/lib/security/java.policy
intente agregar:
grant { permission java.security.AllPermission; };
Y a ver si te lo permite. Si es así, tendrá que agregar más permisos granulares.
Ver:
Documentación Java 8 para archivos java.policy
y
http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html