web-dev-qa-db-ja.com

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 Code。

この問題を解決するにはどうすればよいですか?

23
arsenal

あなたの<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

19
Petey B

推奨されませんが、Webアプリケーションがその展開ディレクトリ外のフォルダーにアクセスできるようにしたい場合。 Java.policyファイルに次の権限を追加する必要があります(パスはPetey Bの返信のとおりです)

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

あなたの場合、それは

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

ここで/-は、このフォルダー内のファイルまたはサブフォルダーを意味します。

警告:しかし、これを行うことにより、セキュリティ上のリスクを招くことになります。

10
Naved