java.security.AccessControlException:访问被拒绝(java.io.FilePermission

java.security.AccessControlException: Access denied (java.io.FilePermission

1
2
3
4
5
6
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

我正在尝试在文件夹中创建文件,但由于出现异常

1
java.security.AccessControlException: Access denied

我在Windows环境中工作。 我可以从Windows资源管理器创建一个文件夹,但不能从Java代码创建一个文件夹。

我该如何解决这个问题?


在您的\lib\security\java.policy中,尝试添加:

grant {
permission java.security.AllPermission;
};

看看是否允许您。 如果是这样,您将必须添加更多的细化权限。

看到:

java.policy文件的Java 8文档

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


尽管不建议这样做,但是如果您确实要让您的Web应用程序访问其部署目录之外的文件夹。 您需要在java.policy文件中添加以下权限(路径与Petey B的回复相同)

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

在你的情况下

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

/-表示此文件夹中的所有文件或子文件夹。

警告:但是,这样做会带来一些安全风险。