Java.security.AccessControlException: Доступ запрещен (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
Я пытаюсь создать файл в папке, но получаю исключение как
java.security.AccessControlException: Access denied
Я работаю в среде Windows. Я могу создать папку из Проводника Windows, но не из кода Java.
Как я могу решить эту проблему?
Ответы
Ответ 1
В рамках <jre location>\lib\security\java.policy
попробуйте добавить:
grant {
permission java.security.AllPermission;
};
И посмотрим, позволяет ли это вам. Если это так, вам нужно будет добавить более подробные разрешения.
См:
Документация по Java 8 для файлов java.policy
и
http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html
Ответ 2
Хотя это не рекомендуется, но если вы действительно хотите, чтобы ваше веб-приложение обращалось к папке вне ее каталога развертывания. Вам нужно добавить следующее разрешение в файле java.policy
(путь такой же, как в ответе Petey B)
permission java.io.FilePermission "your folder path", "write"
В вашем случае это будет
permission java.io.FilePermission "S:/PDSPopulatingProgram/-", "write"
Здесь /-
означает любые файлы или подпапки внутри этой папки.
Предупреждение: Но при этом вы вызываете угрозу безопасности.