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.

Как я могу решить эту проблему?

2 ответа

В вашем <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

Хотя это и не рекомендуется, но если вы действительно хотите, чтобы ваше веб-приложение получало доступ к папке вне своего каталога развертывания. Вам необходимо добавить следующее разрешение в java.policy файл (путь как в ответе Пити Б)

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

В вашем случае это будет

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

Вот /- означает любые файлы или подпапки внутри этой папки.

Предупреждение: Но, делая это, вы создаете угрозу безопасности.

Просто задокументируйте это здесь, в Windows, вам нужно избежать \ персонаж:

"e:\\directory\\-"
Другие вопросы по тегам