java.io.FileNotFoundException: (В доступе отказано) - PullRequest
2 голосов
/ 19 августа 2009

Я пытаюсь прочитать файл, помещенный в папку с документами на Vista. Поле существует в указанном месте, но все равно я получаю следующую ошибку при попытке открыть входной поток в файл

java.io.FileNotFoundException:  (Permission denied)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at rtran.dao.CustomerDAO.insertCustomer(CustomerDAO.java:29)
        at rtran.action.AddCustomerAction.execute(AddCustomerAction.java:22)
        at rtran.controller.Controller.actionPerformed(Controller.java:85)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6041)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5806)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4413)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2440)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Есть идеи, как решить эту проблему?

Абдул Халик

Ответы [ 3 ]

1 голос
/ 19 августа 2009

Возможно, вы пытаетесь записать файл только для чтения? Из трассировки стека вы вызываете метод вставки.

Кроме того, у вас есть права доступа к файлу? Я имею в виду права на чтение как самого файла, так и его родительского каталога (и его родительского каталога и т. Д.).

0 голосов
/ 21 сентября 2009

Начиная с 1.6.0_14, java делает что-то иное, чем 1.6.0_13, обрабатывая виртуальные пути (символические ссылки), и Windows Vista активно использует их в программных файлах, документах и ​​настройках. Может быть, это твоя проблема.

0 голосов
/ 19 августа 2009

Похоже, у java-процесса нет разрешения на чтение файла. Вы, вероятно, работаете с UAC и всеми другими неприятными вещами, которые MS вкладывает в Vista.

Я бы сделал следующее:

  • Проверьте права доступа к файлам.
  • Запустите java-код с опцией «Запуск от имени администратора»
  • Отключить UAC и всегда запускать все с правами администратора
...