25
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 代码创建文件夹。

我该如何解决这个问题?

4

3 回答 3

25

在您<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

于 2012-05-04T19:36:53.377 回答
10

虽然不推荐,但如果你真的想让你的 web 应用程序访问其部署目录之外的文件夹。您需要在java.policy文件中添加以下权限(路径如Petey B的回复)

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

在你的情况下,它会是

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

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

警告:但是这样做会招致一些安全风险。

于 2012-09-07T11:48:20.690 回答
1

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

"e:\\directory\\-"
于 2020-02-27T11:46:21.960 回答