(Accès refusé) Исключение доступа запрещено - PullRequest
2 голосов
/ 23 августа 2010

У меня есть доступ к файлу из 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)

- любое тело имеет представление о том, почему произошло это исключение .....это относится к разрешению файла означает, что файл не имеет разрешения на чтение.

Ответы [ 2 ]

2 голосов
/ 23 августа 2010

С моим ограниченным знанием французского я думаю, что «Acc? S отказ?» в вашей системе это "Accès refusé?" или что-то подобное. Что означает: «доступ запрещен». Другими словами, вашей Java-программе не разрешено переходить в указанное вами место.

Учитывая, что местоположение находится под c:\program files, это местоположение действительно запрещено для Windows Vista и более поздних версий. Лучше выбрать место под %APPDATA% или в другом месте, где у вас есть доступ для записи.

Обратите внимание, что Windows пытается предотвратить запись в деликатные места из соображений безопасности. Даже если вы получите право, изменив свою учетную запись на Администратора, вам все равно не следует помещать данные, настройки, файлы и т. Д. В Program Files. Вместо этого он должен находиться в каталоге данных текущего пользователя или приложения пользователя по умолчанию. В Java вы можете получить этот путь следующим образом :

// get application path
System.getenv("APPDATA");
1 голос
/ 23 августа 2010

Это исключение означает, что учетная запись, под которой вы запускаете приложение, не имеет прав на запись в файл.Вам нужно будет предоставить необходимые разрешения для файла, в который вы пытаетесь записать.Другой вариант - поместить файл в другую папку, где у вас есть необходимые разрешения.

...