java.security.AccessControlException: accesso negato (java.io.FilePermission

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 

Sto cercando di creare un file in una cartella, ma sto ottenendo un’eccezione come

 java.security.AccessControlException: Access denied 

Sto lavorando in ambiente Windows. Posso creare una cartella da Esplora risorse, ma non dal codice Java.

Come posso risolvere questo problema?

All’interno di \lib\security\java.policy prova ad aggiungere:

grant { permission java.security.AllPermission; };

E vedi se ti permette. In tal caso, dovrai aggiungere ulteriori autorizzazioni granulari.

Vedere:

Documentazione Java 8 per i file java.policy

e

http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html

Anche se non è raccomandato, ma se si vuole veramente consentire alla propria applicazione Web di accedere a una cartella al di fuori della sua directory di distribuzione. È necessario aggiungere la seguente authorization nel file java.policy (il percorso è come nella risposta di Petey B)

 permission java.io.FilePermission "your folder path", "write" 

Nel tuo caso lo sarebbe

 permission java.io.FilePermission "S:/PDSPopulatingProgram/-", "write" 

Qui /- indica qualsiasi file o sottocartella all’interno di questa cartella.

Attenzione: facendo ciò, si invitano alcuni rischi per la sicurezza.