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
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.