繁体   English   中英

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

[英]java.security.AccessControlException: Access denied (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 代码中创建。

我该如何解决这个问题?

在您的<jre location>\\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的回复)

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

在你的情况下,这将是

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

这里/-表示此文件夹内的任何文件或子文件夹。

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

只需在 Windows 上记录它,您需要转义\\字符:

"e:\\directory\\-"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM