Java (Accè;s拒绝é;)访问被拒绝异常

Java (Accè;s拒绝é;)访问被拒绝异常,java,file-io,file-permissions,access-denied,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.EventQueu

我正在从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) c:\Program Files\sample\sample\cample.xml(Acc?s REFS?) 位于java.io.FileOutputStream。(未知源) 位于java.io.FileOutputStream。 在java.awt.event.InvocationEvent.dispatch(未知源)处 位于java.awt.EventQueue.dispatchEvent(未知源) 位于java.awt.EventDispatchThread.pumpOneEventForFilters(未知源) 位于java.awt.EventDispatchThread.pumpEventsForFilter(未知源) 位于java.awt.EventDispatchThread.pumpEventsForHierarchy(未知源) 位于java.awt.EventDispatchThread.pumpEvents(未知源) 位于java.awt.EventDispatchThread.pumpEvents(未知源) 位于java.awt.EventDispatchThread.run(未知源) 有没有人知道为什么会发生这种异常情况……,解决办法。。。。。
它是否与文件权限相关表示文件没有读取权限。

此异常表示运行应用程序的帐户没有对文件的写入权限。您需要向您试图写入的文件授予必要的权限。另一种选择是将文件放入另一个文件夹中,您可以在其中获得必要的权限。

由于我对法语的了解有限,我认为在您的系统中,“Acc?s refus?”是“Acc?s refus?”或类似的意思。这意味着:“访问被拒绝”。换句话说,您的Java程序不允许转到您提到的位置

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

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


或到目录,以便创建文件。您确定要“cample.xml”(而不是“sample.xml”)?如果用户在此位置创建了一个文件,那么我们是否可以通过编程将此文件移动到另一个位置,如temp,%APPDATA%。@raji:用户无法在该位置创建文件,因为他收到了
Accès Refusé
。但是,当出现错误时,您可以建议用户另一个位置(例如
%APPDATA%
,请参阅我对该问题的看法)。“文件没有读取权限”。>>这将是写入权限,因为
文件输出流
意味着:输出,因此是写入。位置“程序文件”确实可能是问题所在。我曾经犯过在“程序文件”下面安装apache web服务器的错误。从那时起,即使使用简单的文本编辑器,对
httpd.conf
应用更改始终是一个挑战…@Andreas\u D:Windows上Apache的两个提示:(1)右键单击编辑器(甚至记事本)并选择以管理员身份运行,(2)更改
httpd.conf
的位置(必须在命令行的注册表或批处理文件中完成)。我非常满意地使用了后者(无论如何,我都不喜欢可执行文件旁边的httpd.conf)。
// get application path
System.getenv("APPDATA");