java - (Accès refusé) 访问被拒绝异常

标签 java file-io file-permissions access-denied

我正在从 java 应用程序访问文件,但出现以下异常

c:\Program Files\sample\sample\cample.xml (Acc?s refus?)        
at java.io.FileOutputStream.(Unknown Source)  
at java.io.FileOutputStream.  
at java.awt.event.InvocationEvent.dispatch(Unknown Source)  
at java.awt.EventQueue.dispatchEvent(Unknown Source)    
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)  
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)  
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
at java.awt.EventDispatchThread.run(Unknown Source)

有谁知道为什么会发生这个异常......,解决方案...... 是否与文件权限有关,意思是文件没有读权限。

最佳答案

以我有限的法语知识,我想“Acc?s refus?”在您的系统上,是“拒绝访问?”或类似的东西。这意味着:“访问被拒绝”。换句话说,你的Java程序不允许去你提到的位置。

考虑到该位置位于c:\program files下,Windows Vista 及更高版本确实禁止该位置。最好选择 %APPDATA% 下的位置或您具有写入权限的其他位置。

请注意,出于安全原因,Windows 会尝试阻止写入敏感位置。即使您通过将帐户更改为管理员获得了权限,您仍然不应该将数据、设置、文件等放在程序文件下。相反,它应该位于当前用户或默认用户的应用程序数据目录下。在Java中你可以get this path as follows :

// get application path
System.getenv("APPDATA");

关于java - (Accès refusé) 访问被拒绝异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3545093/

相关文章:

windows - 以编程方式向目录添加具有写入权限的 IIS_IUSRS

php - 如果我对文件夹具有写权限,如何在 PHP 中确定

java - java-service-wrapper 如何决定是使用 32 位还是 64 位 VM?

java - 循环查找最高值、最低值和平均值

java - 将图像插入布局,然后用于电子邮件应用程序

java - 如何在Java中读取txt.file中的第一个字母?

matlab - 是否可以加载已保存在 .mat 文件中的矩阵的单列?

java - ECLIPSE - 使用 JNI 时出现 java.lang.UnsatisfiedLinkError

c - 在 C 中省略参数名称

bash - Windows 10 和 WSL - 在文件资源管理器中创建时,目录未出现在 Bash 中