java.security.AccessControlException: Access denie

2019-01-09 09:07发布

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

I am trying to create a file in a folder but I am getting exception as

java.security.AccessControlException: Access denied

I am working in windows environment. I can create a folder from the Windows Explorer, but not from the Java Code.

How can I resolve this issue?

2条回答
Emotional °昔
2楼-- · 2019-01-09 09:34

Although it is not recommended, but if you really want to let your web application access a folder outside its deployment directory. You need to add following permission in java.policy file (path is as in the reply of Petey B)

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

In your case it would be

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

Here /- means any files or sub-folders inside this folder.

Warning: But by doing this, you are inviting some security risk.

查看更多
SAY GOODBYE
3楼-- · 2019-01-09 09:42

Within your <jre location>\lib\security\java.policy try adding:

grant { permission java.security.AllPermission; };

And see if it allows you. If so, you will have to add more granular permissions.

See:

Java 8 Documentation for java.policy files

and

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

查看更多
登录 后发表回答